2011-08-18 212 views
2

我试图访问一个嵌套的JSON数组嵌套的JSON对象到数组

 var jsonResponse:Object = JSON.decode(response); 
     var foo:Object = JSON.decode(jsonResponse.nested); 
     var bar:Array = foo as Array; 

当我检查FOO - 有大约50名儿童对象的对象。

我可以读取子对象的属性。

但是,当我将foo作为数组转换时,它返回null。

我宁愿不迭代每个对象并将其推入数组。

有什么建议吗?

+0

我不认为你应该调用两次JSON.decode。第一次调用会将JSON字符串解析为一个对象,从此之后,您可以使用jsonRespons及其属性,而无需进一步解码。例如,jsonRespons.nested可能是一个数组,不需要解码。 –

回答

3

如果您有对象,则确实无法将其转换为Array。你要么需要修改JSON字符串(如果你有机会的话),或者遍历属性的对象:

for (var n:String in foo) { 
    var value = foo[n]; 
    trace(value); 
} 

或者,如果你真的想用一个数组,你需要创建它手动:

var bar:Array = []; 
for (var n:String in foo) { 
    var value = foo[n]; 
    bar.push(value); 
} 
3

您可以在JSON解码右为Array,而不是对象,像这样:

var jsonResponse:Array = JSON.decode(response); 
var foo:Array = JSON.decode(jsonResponse.nested); 

有看看这个问题: AS3 JSON parsing