JSON.parse,我做错了啥?

Posted

技术标签:

【中文标题】JSON.parse,我做错了啥?【英文标题】:JSON.parse, what am I doing wrong?JSON.parse,我做错了什么? 【发布时间】:2017-03-13 22:23:54 【问题描述】:

所以,我正在尝试在 javascript 中解析一些 JSON。这感觉它应该可以工作,但我遇到了一个错误。这是函数调用:

JSON.parse("player: 'green', direction: 'north'");

这是错误

VM156:1 Uncaught SyntaxError: Unexpected token p in JSON at position 1
    at Object.parse (native)
    at <anonymous>:1:6

我在一个空的网页上尝试这个,没有 JS 库。

字符串,只是在 Javascript 中执行时创建了一个具有两个预期属性的对象。

我尝试将键包装在字符串中。那没有解析。

意外的标记似乎是第一个字母。

我做错了什么,我该如何解析这个对象?

【问题讨论】:

你没有传递 JSON,这对于期望 JSON 的函数来说是个问题 @adeneo 可能这并没有达到我的预期。你能举个有效的例子吗? jsonlint.com 是你的朋友,json.org 的规范也是如此 在 JSON 中,键和值总是用双引号引起来,除非值是数字或其他“对象”等。 请记住,在创建对象时,JSON 比 javascript 表示法更严格。 【参考方案1】:

那不是valid JSON。

试试这个:

JSON.parse('"player": "green", "direction": "north"');

注意双引号 " 而不是单引号 ' 和对象键周围的引号。

【讨论】:

以上是关于JSON.parse,我做错了啥?的主要内容,如果未能解决你的问题,请参考以下文章

Firestore - 我做错了啥?

这个Lua代码我做错了啥

单对象 json 解析 - 我做错了啥?

QTreeView 的 QAbstractItemModel:我做错了啥?

矩形跨域请求。我做错了啥?

将自定义标头添加到 AFNetworking,我做错了啥?