我知道这是一个简单的问题,但我无法访问json对象中的数据。它看起来像这样:
var string={"data":
[
{
"city": "Gansu",
"value": "#000"
},
{
"city": "Ningzhau",
"value": "#000"
},
{
"city": "Chongqing",
"value": "#000"
}
]
};
var obj =JSON.parse(string);
为了测试它,我正在做:document.write(obj.data[0].city);
我认为应该返回Gansu。
有人可以告诉我最后一行代码有什么问题以及如何修复它?感谢。
答案 0 :(得分:1)
'string'已经是一个对象,无需转换它。
只需string.data[0].city;
答案 1 :(得分:1)
或者您不应该解析JSON:
var string={"data":
[
{
"city": "Gansu",
"value": "#000"
},
{
"city": "Ningzhau",
"value": "#000"
},
{
"city": "Chongqing",
"value": "#000"
}
]
};
alert(string.data[0].city);
答案 2 :(得分:0)
您忘记在JSON数据周围添加引号,因此它实际上是一个对象。 JSON.parse()
需要一个字符串。看起来应该是这样的:
var string = '{"data":[{"city": "Gansu","value": "#000"},{"city": "Ningzhau","value": "#000"},{"city": "Chongqing","value": "#000"}]}';
// ----------^-----------------------------------------------------------------------------------------------------------------------^
var obj = JSON.parse(string);
document.write(obj.data[0].city);