所以我试图解析一个JSON响应:
{
"success":true,
"rgInventory":{
"7058200129":{
"id":"7058200129",
"classid":"1690096482",
"instanceid":"0",
"amount":"1",
"pos":1
},
"7038515091":{
"id":"7038515091",
"classid":"310776543",
"instanceid":"302028390",
"amount":"1",
"pos":2
},
"6996242662":{
"id":"6996242662",
"classid":"310781169",
"instanceid":"302028390",
"amount":"1",
"pos":3
},
所以我需要访问rgInventory来处理子集。问题是我尝试将此作为我的代码来解析JSON:
obj.rgInventory[0]
这通常适合我,但这次不起作用。问题是这是JSON的一小部分,大约有200个这样的回复。如何动态解析所有这些?
我只需要帮助获取数据。谢谢!
答案 0 :(得分:1)
rgInventory
是一个对象,而不是一个数组,所以它不能像数组一样被访问。请注意冒号后面的{
而不是[
?
使用this获取对象中的第一个元素:
var obj = { foo: 'bar' };
console.log(obj[Object.keys(obj)[0]]); //logs 'bar'
Here是关于数组和对象之间差异的精彩教程。
答案 1 :(得分:1)
首先,这不是一个有效的JSON,但无论如何你在这里共享了一个JSON对象,我们可以解析它并通过它们的键访问子对象:
var rgInventory = json["rgInventory"];
这是 DEMO代码段:
var json = {
"success":true,
"rgInventory":{
"7058200129":{
"id":"7058200129",
"classid":"1690096482",
"instanceid":"0",
"amount":"1",
"pos":1
},
"7038515091":{
"id":"7038515091",
"classid":"310776543",
"instanceid":"302028390",
"amount":"1",
"pos":2
},
"6996242662":{
"id":"6996242662",
"classid":"310781169",
"instanceid":"302028390",
"amount":"1",
"pos":3
}}};
var rgInventory = json["rgInventory"];
alert(rgInventory[6996242662].id);