Вложенный объект Json в массив - PullRequest
2 голосов
/ 18 августа 2011

Я пытаюсь получить доступ к вложенному массиву json

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

Когда я проверяю foo - это объект с примерно 50 дочерними объектами.

Я могу прочитать свойства дочерних объектовобъекты.

Однако, когда я разыграю foo как Array, он вернется к нулю.

Я бы предпочел не перебирать каждый объект и не помещать его в массив.

Любойсовет?

Ответы [ 2 ]

3 голосов
/ 18 августа 2011

Вы можете декодировать JSON прямо в массив вместо объекта, например:

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

Посмотрите на этот вопрос: AS3 JSON-разбор

3 голосов
/ 18 августа 2011

Если у вас есть объект, вы действительно не можете привести его к 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...