<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格式不正确?但它已经通过了几个在线验证器。
答案 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>