我在Xamarin.iOS开发的程序中使用JavaScriptCore。 我想在JSValue实例中获取属性名称。
我尝试了JSValue.GetProperty
,JSValue.GetValueAt
。
但是这些方法只能获取属性值。
我只想知道JSValue实例中有哪些属性。
这是示例
var test = {
a: 12,
b: "this is b."
c: [1, 2, 3]
}
我可以通过test
获得JSValue.GetProperty(string key)
个对象。
但是无法从a
对象获得b
,c
,test
。
我该怎么办?
答案 0 :(得分:2)
但是无法从测试对象中获得a,b,c。
您可以使用 for循环和 hasOwnProperty 方法获取所有键。如下所示:
var test = {
a: 12,
b: "this is b."
c: [1, 2, 3]
}
var keys1 = [];
for (var p1 in test ) {
if (test.hasOwnProperty(p1))
keys1.push(p1);
}
alert(keys1); // a,b,c
这个问题似乎与Xamarin无关,下次您可以使用 JS 标签问这个问题。
答案 1 :(得分:1)
我得到了答案Here。
if (test.IsObject)
{
var dict = test.ToDictionary();
var keys = dict.Keys;
foreach( var key in keys)
{
Console.WriteLine(key+":"+dict[key]);
}
}
else
{
Console.WriteLine("`test` is not an object");
}
使用ToDictionary()
方法来 JSValue ( NSObject )。
我可以将test
对象用作NSDictionary。