无法访问json数据

时间:2013-08-09 02:36:20

标签: javascript html json

我知道这是一个简单的问题,但我无法访问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。

有人可以告诉我最后一行代码有什么问题以及如何修复它?感谢。

3 个答案:

答案 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);