在AS3中加载JSON

时间:2012-06-13 09:23:18

标签: json actionscript-3 flash

我正在尝试将JSON加载到我的flash程序中。 JSON与fla和swf文件位于同一目录中。我能够将JSON加载到字符串变量中,当我进行跟踪时,我看到了JSON。 JSON格式有效,请查看:http://www.jsonlint.org/。 问题是当我尝试将JSON解码为Object时。 我收到以下错误:“RangeError:错误#1506:指定的范围无效。” 我正在使用ac3corelib的JSON lib来解码字符串。 以下是所有代码:

import com.rational.serialization.json.JSON;
import flash.display.Loader;
import flash.external.ExternalInterface;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;

var _jsonLoader:URLLoader = new URLLoader();
_jsonLoader.load(new URLRequest("JSON.json"));
_jsonLoader.addEventListener(Event.COMPLETE, processJson);
_jsonLoader.addEventListener(IOErrorEvent.IO_ERROR, _notify);

function _notify(e:IOErrorEvent):void
{
    trace("error");
    e.target.removeEventListener(IOErrorEvent.IO_ERROR, _notify);
}
function processJson(e:Event):void
{
    var stringJson:String;
    var temp:Object;
    stringJson = String (e.target.data);
    trace(stringJson);
    temp = JSON.decode(stringJson);
trace(temp)
}

请告知我为何会收到此错误

谢谢大家, Moshe S,

1 个答案:

答案 0 :(得分:3)

如果没有看到您的JSON代码,很难说清楚。但是,您使用的是什么版本的Flash?从Flash 11和Air 3.0(以及Flex 4.6)开始,您将获得本机JSON支持。

查看本机解析器是否为您提供了任何不同的信息:

temp = JSON.parse(stringJson);