我正在将JSON字符串解析为JSON对象,并在第1行第120列(对象中的最后一个字符)遇到上述错误。
这是有问题的字符串:
{"{\"sender\":\"jeff\",\"recipient\":\"bill\",\"type\":\"friend-request\",\"viewed\":false,\"timestamp\":\"8/5/2019\"}"}
在此处以用户身份访问。
const displayNotifications = async function() {
if (!user.notifications) {
setNotifications(
(
<div key="0">
<p>You have no notifications to check!</p>
</div>
));
} else {
setNotifications(await JSON.parse(user.notifications).map((notification, i) => {
if (notification.type === "friend-request") {
return <FriendRequestNote key={i} notification={notification} />
} else if (notification.type === "friend-accept") {
return <FriendAcceptNote key={i} notification={notification} />
}
return true;
}));
}
}
我已经通过JSONLinter运行了它,它给了我同样的错误。似乎无法弄清楚为什么它要我在对象的末尾放一个冒号。
答案 0 :(得分:2)
您似乎在对象周围多了一个{}。我会建议使用{\"sender\":\"jeff\",\"recipient\":\"bill\",\"type\":\"friend-request\",\"viewed\":false,\"timestamp\":\"8/5/2019\"}
代替。
否则,您将使用其中带有字符串的对象,而json需要对象的键值结构。
答案 1 :(得分:0)
这将是有效的RFC 4627(JSON)。
{
"sender": "jeff",
"recipient": "bill",
"type": "friend-request",
"viewed": false,
"timestamp": "8/5/2019"
}
如何提取或生成JSON?