嵌套的JSON对象到数组
问题描述:
我试图访问一个嵌套的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。
我宁愿不迭代每个对象并将其推入数组。
有什么建议吗?
答
如果您有对象,则确实无法将其转换为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);
}
答
您可以在JSON解码右为Array,而不是对象,像这样:
var jsonResponse:Array = JSON.decode(response);
var foo:Array = JSON.decode(jsonResponse.nested);
有看看这个问题: AS3 JSON parsing
我不认为你应该调用两次JSON.decode。第一次调用会将JSON字符串解析为一个对象,从此之后,您可以使用jsonRespons及其属性,而无需进一步解码。例如,jsonRespons.nested可能是一个数组,不需要解码。 –