我一直在打獵幾個小時,我仍然不知道發生了什麼事情。我是PHP的新手,但對簡單的Flash工具相當舒服。AS3,PHP和JSON - 解碼一個對象是好的,一個數組返回null
我傳遞一個JSON對象從PHP到Flash AS3使用URLLoaders等,這是我的PHP創建的測試JSON陣列:
$objJSON = array('sample' => null);
$objJSON['sample'] = "TESTING";
$objJSON['sample2'] = "TESTING2";
$objJSON = json_encode($objJSON);
我回到它閃爍
echo "arrayData=$jsonArray";
當我分析,隨着閃存(單個對象,使用
var tempJSON = JSON.decode(event.target.data.arrayData);
我得到「測試」作爲我的輸出textBox.t ext = tempJSON.sample;使用本地主機通過WAMP),這是正確的。一切看起來不錯,有通信,JSON庫正在使用的權利,對象是在那裏和訪問...
但是!當我把它當作一個數組(因爲這是它是什麼)通過改變代碼的正上方(和其他人接觸是Nothing):
var tempJSON:Array = JSON.decode(event.target.data.arrayData, true);
我扔的編譯器錯誤:
TypeError: Error #1009: Cannot access a property or method of a null object reference. at com.adobe.serialization.json::JSONTokenizer/nextChar()[....\json\JSONTokenizer.as:545]
在本地主機運行swf讓我不會回到以前用來獲取字符串的地方。我是否犯了一些新手的錯誤,當我把它當作數組對待時,數據突然變爲空?
我已經通過PHP中的輸出檢查了我的JSON的有效性,它檢出。我已經確定在被調用的PHP類中沒有額外的回聲。我只是難住。
FIX'D!
在註釋的引導下,我基本上沒有把我的JSON形成一個數組,只是具有多個屬性的對象。正確的方法是:
$objArray = array(
array(
"sample1" => "Testing!",
"sample2" => "Testing2!",
),
array (
"sample1" => "Testing!",
"sample2" => "Testing2!",
)
);
$objArray = json_encode($objArray);
請同時添加JSON的例子。 –