JSON格式化和解析错误

时间:2015-10-30 14:59:16

标签: javascript json

<script>

var data =
{
    "displays": [
        {
            "ID": "display1",
            "curValue": 0,
            "ENDVALUE": 700,
            "STEP": 0
        },
        {
            "ID": "display2",
            "curValue": 0,
            "ENDVALUE": 100,
            "STEP": 0
        },
        {
            "ID": "display3",
            "curValue": 0,
            "ENDVALUE": 2200,
            "STEP": 0
        },
        {
            "ID": "display4",
            "curValue": 0,
            "ENDVALUE": 20,
            "STEP": 0
        },
        {
            "ID": "display5",
            "curValue": 0,
            "ENDVALUE": 100,
            "STEP": 0
        },
        {
            "ID": "display6",
            "curValue": 0,
            "ENDVALUE": 2,
            "STEP": 0
        }
    ]
}

var arr = JSON.parse(data);
alert(arr.displays[0].ID);

</script>

这是一段使用JSON存储我编写的对象的JavaScript。但是,警报不起作用,这是否意味着我的JSON格式不正确?但它已经通过了几个在线验证器。

2 个答案:

答案 0 :(得分:1)

  

这是一段使用JSON存储我写的对象的JavaScript。

不,不是。这是 JavaScript源代码。 JSON是用于数据交换的文本表示法。如果您正在处理JavaScript源代码,并且处理字符串,那么您就不会处理JSON。

您正在尝试将对象解析为字符串。执行JSON.parse(data)时,JSON.parse对对象执行“to string”操作,从而生成字符串"[object Object]"。然后JSON.parse尝试解析它,失败,因为那不是有效的JSON。

只需删除解析:

var data = {
    // ...
};
alert(data.displays[0].ID);

答案 1 :(得分:-1)

在解析数据之前,您必须使用JSON.stringify(数据) 的的JavaScript     

var data =
{
    "displays": [
        {
            "ID": "display1",
            "curValue": 0,
            "ENDVALUE": 700,
            "STEP": 0
        },
        {
            "ID": "display2",
            "curValue": 0,
            "ENDVALUE": 100,
            "STEP": 0
        },
        {
            "ID": "display3",
            "curValue": 0,
            "ENDVALUE": 2200,
            "STEP": 0
        },
        {
            "ID": "display4",
            "curValue": 0,
            "ENDVALUE": 20,
            "STEP": 0
        },
        {
            "ID": "display5",
            "curValue": 0,
            "ENDVALUE": 100,
            "STEP": 0
        },
        {
            "ID": "display6",
            "curValue": 0,
            "ENDVALUE": 2,
            "STEP": 0
        }
    ]
};

var arr = JSON.parse(JSON.stringify(data));
alert(arr.displays[0].ID);

</script>