Javascript JSON格式和解析错误 var数据= { “显示”:[ { “ID”:“display1”, “曲线值”:0, “终值”:700, “步骤”:0 }, { “ID”:“display2”, “曲线值”:0, “终值”:100, “步骤”:0 }, { “ID”:“display3”, “曲线值”:0, “终值”:2200, “步骤”:0 }, { “ID”:“display4”, “曲线值”:0, “最终价值”:20, “步骤”:0 }, { “ID”:“display5”, “曲线值”:0, “终值”:100, “步骤”:0 }, { “ID”:“display6”, “曲线值”:0, “终值”:2, “步骤”:0 } ] } var arr=JSON.parse(数据); 警报(arr.displays[0].ID);
这是一段JavaScript,它使用JSON存储我编写的一些对象。但是,警报不起作用,这是否意味着我的JSON格式不正确?但它已经通过了几个在线验证程序 这是一段JavaScript,它使用JSON存储我编写的一些对象 不,不是。这是JavaScript源代码。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么就不是JSON 您正在尝试将对象解析为字符串。执行Javascript JSON格式和解析错误 var数据= { “显示”:[ { “ID”:“display1”, “曲线值”:0, “终值”:700, “步骤”:0 }, { “ID”:“display2”, “曲线值”:0, “终值”:100, “步骤”:0 }, { “ID”:“display3”, “曲线值”:0, “终值”:2200, “步骤”:0 }, { “ID”:“display4”, “曲线值”:0, “最终价值”:20, “步骤”:0 }, { “ID”:“display5”, “曲线值”:0, “终值”:100, “步骤”:0 }, { “ID”:“display6”, “曲线值”:0, “终值”:2, “步骤”:0 } ] } var arr=JSON.parse(数据); 警报(arr.displays[0].ID);,javascript,json,Javascript,Json,这是一段JavaScript,它使用JSON存储我编写的一些对象。但是,警报不起作用,这是否意味着我的JSON格式不正确?但它已经通过了几个在线验证程序 这是一段JavaScript,它使用JSON存储我编写的一些对象 不,不是。这是JavaScript源代码。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么就不是JSON 您正在尝试将对象解析为字符串。执行JSON.parse(data)时,JSON.parse对对象执行“to string”操作
JSON.parse(data)
时,JSON.parse
对对象执行“to string”操作,结果是字符串“[对象对象]”
。然后,JSON.parse
尝试解析它,但失败了,因为那不是有效的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.stringify(数据) JavaScript
var数据=
{
“显示”:[
{
“ID”:“display1”,
“曲线值”:0,
“终值”:700,
“步骤”:0
},
{
“ID”:“display2”,
“曲线值”:0,
“终值”:100,
“步骤”:0
},
{
“ID”:“display3”,
“曲线值”:0,
“终值”:2200,
“步骤”:0
},
{
“ID”:“display4”,
“曲线值”:0,
“最终价值”:20,
“步骤”:0
},
{
“ID”:“display5”,
“曲线值”:0,
“终值”:100,
“步骤”:0
},
{
“ID”:“display6”,
“曲线值”:0,
“终值”:2,
“步骤”:0
}
]
};
var arr=JSON.parse(JSON.stringify(data));
警报(arr.displays[0].ID);
这不是json。这实际上只是javascript。您正在尝试json解析已经是js对象的内容。json是将外部数据加载到JS脚本中的方式。js代码中嵌入的json实际上已经是javascript代码了,并且与其他代码一起得到了“解析”。请始终尝试添加一种语言tagOk,这就是为什么,谢谢guysvar arr=json.parse(json.stringify(data));//我更改了代码底部的这一行,您的代码将正常工作。我测试过了//这里的代码使用语言attributevar arr=JSON.parse(JSON.stringify(data));//我在你代码的底部修改了这一行,你的代码可以运行了。我测试过了。
var data = {
// ...
};
alert(data.displays[0].ID);
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>