2011-01-31 16 views
1

私はas3corelib JSONライブラリを使用していて、URLLoaderリクエストからJSONをデコードしています。AS3 JSON.decode throwing#1009エラー

TypeError: Error #1009: Cannot access a property or method of a null 

object reference. at com.adobe.serialization.json::JSONTokenizer/nextChar() at com.adobe.serialization.json::JSONTokenizer() at com.adobe.serialization.json::JSONDecoder() at com.adobe.serialization.json::JSON$/decode() at Main/drawMap() at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at flash.net::URLLoader/onComplete()

私のコードは次のとおりです。:しかし、私はJSON.decodeがエラーを投げるの問題を抱えている私はバリに私のJSON入力を通過してきたし、それはいつものように、有効な返し

private function storeAssets(e:Event):void 
{ 
    // returned variables from PHP call 
    var variables:URLVariables = new URLVariables(e.target.data); 
    assets = JSON.decode(variables.assets); 
} 

私は本当にこれについて私の頭を傷つけている。

+0

なぜURLVariablesを使用しますか? jsonデータをサーバーから直接取得する場合は、URLVariablesを使用しないでください。レスポンス文字列を取得してJSON.decodeに直接渡します。 – Ben

+0

良い点ですが、誤解しない限り、影響はないはずです私の問題では、正しい? – clexmond

+1

質問を編集し、 'trace(variables.assets);の出力を追加することができます – sberry

答えて

0

この例のように、URLVariablesオブジェクトにe.target.dataを置くことであなたの右: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をトレースし、nullであるか、JSON形式でないかを確認します。

var variables:URLVariables = new URLVariables(e.target.data)またはassets = JSON.decode(e.target.data)のいずれかを使用しますが、同時に両方を使用することはありません。