JSON.parse没有预期的行为

时间:2018-04-03 06:26:47

标签: javascript json node.js ecmascript-6

我试图收到由json发送的post请求,并对其执行JSON.parse。但是这个错误发生了:

  

Uncaught SyntaxError:位置2的JSON中出现意外的标记m       在JSON.parse()       at:1:19

以下代码重现错误:

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

这就是我在post

中发送的方式

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

我发送的方式有问题吗?

3 个答案:

答案 0 :(得分:26)

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



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




答案 1 :(得分:5)

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

const string = '{ "msg_reject": "Rejeitado porque sim", "accept": 1, "photo": "FSADKJK23B1" }';

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

答案 2 :(得分:0)

发送邮件时,首先对对象进行Stringify, 使用JSON.stringify(object)并发送,同时检索JSON.parse应该可以正常工作