2016-09-18 57 views
1

我想從一個JSON一個數組返回,但是當我試圖獲得這些數據返回「未定義」jQuery的未定義,從JSON文件

這裏就是我試圖獲取數據:

$.getJSON('saveGames/userID' + userID + '_SAVEALPHA.json', function(data) { 
    console.log("Got data from saveJSON: " + data); 
    var testVar = jQuery.parseJSON(data); 
    console.log(testVar); 
    playersPokemon = testVar.pokemon; 
    console.log(testVar.pokemon); 
    console.log("Players Pokemon: " + playersPokemon); 
}); 

JSON文件(由PHP生成)

"[{\"userID\":\"1\",\"saveName\":\"h\",\"pokemon\":[\"Pikachu\",\"Charmander\"]}]" 

我已經使用了JSON驗證檢查這個文件,它是確定的。我試圖用jQuery訪問這個json文件(如果你不知道)。

+1

看起來像一個字符串,而不是JSON – Derek

+0

在回調中,您正在記錄'data','testVar'和'testVar.pokemon'。他們的價值是什麼? –

+0

@你的JSON **是一個字符串。 – Barmar

回答

0

你的JSON字符串對象的數組:[{...}],該pokemon屬性是在對象不是數組所以要訪問它,你需要testVar[0].pokemon

或者你可以從JSON文件中刪除括號如果可能的話:

"{\"userID\":\"1\",\"saveName\":\"h\",\"pokemon\":[\"Pikachu\",\"Charmander\"]}"

+0

它的工作!非常感謝! – SeanOMik

1

別叫jQuery.parseJSON(data)。當您使用$.getJSON()時,jQuery會自動解析它 - 這就是$.get()$.getJSON()之間的區別。