JSON.parse没有预期的行为

bru*_*eds 5 javascript json node.js ecmascript-6

我正在尝试收到一个json请求post,并JSON.parse通过它发送.但是这个错误发生了:

未捕获的SyntaxError:位于JSON.parse()的位置2的JSON中的意外的标记m:1:19

下面的代码重现了错误:

const string = '{ msg_reject: \'Rejeitado porque sim\', accept: 1, photo: \'FSADKJK23B1\' }'
const json = JSON.parse(string)
Run Code Online (Sandbox Code Playgroud)

这就是我发送给我的方式 post

{ msg_reject: 'Rejeitado porque sim', accept: 1, photo: 'FSADKJK23B1' }

我发送它的方式有什么问题吗?

Cer*_*nce 26

格式正确的JSON字符串"在每个键和每个字符串值周围都有双引号.

const string = '{ "msg_reject": "Rejeitado porque sim", "accept": 1, "photo": "FSADKJK23B1" }';
const json = JSON.parse(string);
console.log(json);
Run Code Online (Sandbox Code Playgroud)


Ans*_*wal 5

您的JSON字符串格式不正确,您必须"为键和值添加双引号:

const string = '{ "msg_reject": "Rejeitado porque sim", "accept": 1, "photo": "FSADKJK23B1" }';
Run Code Online (Sandbox Code Playgroud)

有许多在线解析器可用于验证您的JSON字符串,我通常使用http://json.parser.online.fr/来验证我的JSON.