1

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

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,

4

1 回答 1

3

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

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

temp = JSON.parse(stringJson);
于 2012-06-13T10:19:00.047 回答