如何以数组形式访问 JavaScript 对象
How to access a JavaScript object as an array
在 GopherJS 中,对象的成员本身就是对象(就像 js 在后台处理事情一样,ttbomk)。
所以当访问一个成员时,会返回一个 *js.Object
:
func makeRID(o *js.Object) string {
// access the array of numbers in member RID:
arr := o.Get("RID")
// arr is now a *js.Object - not an []interface{} - which is what I actually need (and what the contents of the property RID really are...
}
传入的 o
是从服务器的 JSON 响应中提取的 js 对象。它的成员 "RID" 是字节值数组 - 例如{ RID: [ 136, 210, 92, 97, 152, 26, 17, 233, 147, 147, 8, 0, 39, 223, 163, 7 ],
...
我没有谷歌搜索,也没有在 gopherjs 的 js 文档中看到任何关于如何从 *js.Object 到相当于 js 数组的 gopherjs 的任何明确指示,即 []interface{}
想法?
*js.Object -> []interface{}
Woo-hoo - 知道了!
感谢您的建议:)
func makeRID(o *js.Object) string {
// access the array of numbers in member RID:
jsRID := o.Get("RID")
// I know that the source object's RID member is an Array, so we can access it in gopherjs as:
jsArray := jsRID.Interface().([]interface{})
// ... profit!
}
在 GopherJS 中,对象的成员本身就是对象(就像 js 在后台处理事情一样,ttbomk)。
所以当访问一个成员时,会返回一个 *js.Object
:
func makeRID(o *js.Object) string {
// access the array of numbers in member RID:
arr := o.Get("RID")
// arr is now a *js.Object - not an []interface{} - which is what I actually need (and what the contents of the property RID really are...
}
传入的 o
是从服务器的 JSON 响应中提取的 js 对象。它的成员 "RID" 是字节值数组 - 例如{ RID: [ 136, 210, 92, 97, 152, 26, 17, 233, 147, 147, 8, 0, 39, 223, 163, 7 ],
...
我没有谷歌搜索,也没有在 gopherjs 的 js 文档中看到任何关于如何从 *js.Object 到相当于 js 数组的 gopherjs 的任何明确指示,即 []interface{}
想法?
*js.Object -> []interface{}
Woo-hoo - 知道了! 感谢您的建议:)
func makeRID(o *js.Object) string {
// access the array of numbers in member RID:
jsRID := o.Get("RID")
// I know that the source object's RID member is an Array, so we can access it in gopherjs as:
jsArray := jsRID.Interface().([]interface{})
// ... profit!
}