2016-01-21 200 views
1
$.getJSON("hello.txt", function(json) { 
    console.log(json); 
    alert(json.rgInventory[2].id); 
}); 

使用下面的代碼我試圖從hello.txt文件中解析JSON信息並顯示它。正如你所看到的,代碼下的圖片能夠正確識別JSON信息,但是當試圖從第三個元素打印出它的rgInventory對象時,它說未定義。JSON解析問題undefined

enter image description here

有這一個與信息內許多對象,並都有一個ID。我正在使用的JSON數據可以在這裏找到:http://steamcommunity.com/id/flaangvik/inventory/json/730/2

+1

請張貼在請求返回的JSON。 –

+0

嘗試console.log(json.rgInventory); –

+0

這是json - > http://steamcommunity.com/id/flaangvik/inventory/json/730/2 –

回答

1

問題是因爲在JSON響應中rgInventory是一個對象,而不是一個數組。

我試圖環通,並從每個對象獲得該對象

在這種情況下,你需要通過對象迭代裏面的ID。試試這個:

$.getJSON("hello.txt", function(json) { 
    $.each(json.rgInventory, function(key, obj) { 
     console.log(obj); 
     var id = obj.id; 
     // work with each object here... 
    }) 
}); 
+0

謝謝,將「foo」改爲「json」並且工作正常! :) –

0

試試這些代碼: -

$(json.rgInventory).each(function(key, value){ 
    console.log(value); 
    // Do your code here 
}); 
0

根據您的JSON回報,從你的回報rgInventory屬性是一個對象而不是數組。您可能需要使用散列鍵而不是索引號來訪問子項。

JSON:

{"success":true,"rgInventory":{"4847011145":{"id":"4847011145","classid":"506870401","instanceid":"188530398","amount":"1","pos":1},"4846997498":{"id":"4846997498","classid":"653322524","instanceid":"188530248","amount":"1","pos":2},... 

你應該寫:

$.getJSON("hello.txt", function(json) { 
alert(json.rgInventory["4847011145"].id); 
}