我在我的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
。
我该怎么办 ?
但无法从测试对象获得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 Tags来问这个问题。
我得到了答案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。