我正在使用as3corelib JSON库并从URLLoader请求解码一些JSON。但是,我遇到了JSON.decode抛出错误的问题:
TypeError: Error #1009: Cannot access a property or method of a null
对象引用。在 com.adobe.serialization.json :: JSONTokenizer / nextChar() 在 com.adobe.serialization.json :: JSONTokenizer() 在 com.adobe.serialization.json :: JSONDecoder() 在 com.adobe.serialization.json :: JSON $ /解码() 在Main / drawMap()处 flash.events::EventDispatcher/dispatchEventFunction() 在 flash.events::EventDispatcher/dispatchEvent() 在flash.net::URLLoader/onComplete()
我的代码如下:
private function storeAssets(e:Event):void
{
// returned variables from PHP call
var variables:URLVariables = new URLVariables(e.target.data);
assets = JSON.decode(variables.assets);
}
我已将我的JSON输入传递给验证器,它总是返回有效,所以我真的对此感到头疼。
答案 0 :(得分:0)
您将e.target.data放入URLVariables的权利,根据此示例:http://actionscriptexamples.com/2008/02/27/decoding-url-encoded-strings-in-a-flash-application-using-the-urlvariables-class-in-actionscript-30/
我认为正在发生的是URLVariables将整个字符串解码为一个对象,因此variables.assets不是JSON格式,因为它已经被转换。也可能是在返回数据中没有定义variables.assets。
跟踪你的variables.assets并查看它是否为空,或者是否为JSON格式。
我会同时使用var variables:URLVariables = new URLVariables(e.target.data)
或assets = JSON.decode(e.target.data)
,但不能同时使用两者。