Разбор JSON в ActionScript (Adobe Flex). JSON.decode (string) возвращает ноль - PullRequest
1 голос
/ 15 июня 2011

Я пытаюсь проанализировать файл JSON в моем проекте Flex.Я включил as3corelib.swc и импортировал com.adobe.serialization.json.JSON, но функция JSON.decode () по-прежнему возвращает ноль.В чем может быть проблема?

[Embed(source="assets/test.json",mimeType="application/octet-stream")]
private var json_file:Class;

public function load():void
{
    var bytes:ByteArray = new json_file();
    var json:String = bytes.readUTFBytes(bytes.length);
    trace(json); // String is OK!
    var arr:Array = (JSON.decode(json) as Array);
    trace(arr); // Array is null!
}

Я также пробовал:

    var str:String = (JSON.decode(json) as String);
    trace(arr); // null!

и:

    var arr:Object = JSON.decode(json); // [object Object]
    trace(arr.toString()); // empty string

Спасибо за ваше время.

Ответы [ 3 ]

3 голосов
/ 23 марта 2013

В flex 4.5 он становится разбором вместо декодирования

var obj:Object=JSON.parse(json);
2 голосов
/ 21 декабря 2012

Попробуйте это тоже работает

var arr:Array = (JSON.decode(json) as Array);
for (var keyname:String in arr)
{
trace ( keyname + ": " + arr[ keyname ] );          
}   
1 голос
/ 15 июня 2011

Проблема решена благодаря J_A_X (см. Комментарии к вопросу).Элементы могут быть доступны по ключу.Пример:

var obj:Object = JSON.decode(json);
trace(obj.GlossEntry[0].Acronym.toString());
...