【发布时间】:2017-11-26 04:53:00
【问题描述】:
我正在尝试读取 json 字符串并在 html 页面上输出某些字段,但出现此错误:
语法错误:JSON.parse:第 1 行第 2 列出现意外字符 JSON 数据
这是我要发送的 json:
{
"Order0" : {
"user" : "Name",
"products" : [ {
"discription" : "freddo",
"productName" : "sketo",
"price" : 22.3,
"id" : 1
}, {
"discription" : "frape",
"productName" : "glyko",
"price" : 22.3,
"id" : 1
}, {
"discription" : "cappouchino",
"productName" : "sketo",
"price" : 22.3,
"id" : 1
} ],
"id" : 0,
"date" : null,
"temp" : "Get"
},
"Order1" : {
"user" : "Name",
"products" : [ {
"discription" : "freddo",
"productName" : "sketo",
"price" : 22.3,
"id" : 1
}, {
"discription" : "frape",
"productName" : "glyko",
"price" : 22.3,
"id" : 1
}, {
"discription" : "cappouchino",
"productName" : "sketo",
"price" : 22.3,
"id" : 1
} ],
"id" : 0,
"date" : null,
"temp" : "Get"
}
}
提前致谢。
[编辑]
这是处理 json 的代码。
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
var nIntervId;
function fun() {
nIntervId = setInterval(proxy, 2 * 1000);
}
function proxy() {
$.getJSON('events', function(data) {
var obj = JSON.parse(data);
console.log(obj.toString());
});
}
function stop() {
clearInterval(nIntervId);
}
</script>
</head>
<body onload="fun();">
<div id="data"></div>
</body>
</html>
[EDIT2]
我正在使用window.alert(JSON.stringify(data)); 获得我想要的字符串,但我如何获得某些字段??
【问题讨论】:
-
呈现的 JSON 没有任何问题。你确定那是你的浏览器得到的 JSON 吗?尝试调试您的代码并确保。如果您需要这方面的帮助,您需要出示该代码。
-
您分享的代码没有问题。在你创建它和你试图解析它之间一定有什么东西在破坏它。您需要提供minimal reproducible example 来演示问题。
-
您的对象没有问题。你打电话给
JSON.parse(string)还是JSON.stringify(object)? -
是的,因为对象上的 toString 返回对象 Object。 toString 返回“[object type]”,其中 type 是对象类型如果你想把那个 json 对象变成一个字符串,你需要调用
JSON.stringify(data)。
标签: javascript html json