在ActionScript(Adobe Flex)中解析JSON.decode(字符串)返回null



我正在尝试解析Flex项目中的JSON文件。我包含了as3corelib.swc并导入了com.adobe.serialization.json.json,但json.decode()函数仍然返回null。可能是什么问题?

[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

谢谢你抽出时间。

在flex 4.5中,它变成了解析而不是解码

var obj:Object=JSON.parse(json);

试试这个也能工作的

var arr:Array = (JSON.decode(json) as Array);
for (var keyname:String in arr)
{
trace ( keyname + ": " + arr[ keyname ] );          
}   

J_A_X解决了问题(请参阅问题注释)。元素可以通过键访问。示例:

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

最新更新