将string转换为Json以应用JSON修补程序

我正在尝试使用postmon中的jsonstring来申请json补丁。 问题是我无法将string转换为JSON一个数据通过variables发布。 每次我做

JSON.parse(document); 

我收到以下错误:

 SyntaxError: Unexpected token ' in JSON at position 1 

我发送的数据如下

 {"document":"{'baz': 'qux', 'foo': 'bar'}"} 

通过postman使用post方法。

我正在使用req.body来获取邮件数据

 "{'baz': 'qux', 'foo': 'bar'}" is not a valid json string. 

单引号格式不正确的JSON,所以分析器将不会接受单引号,并会抛出低于错误

SyntaxError:意外的标记'在JSON在位置1

在这里输入图像描述

所以为了能够将该stringparsing为json,需要在使用str.replace()之前将qoutesreplace为qoutes

演示:

 var data = {"document":"{'baz': 'qux', 'foo': 'bar'}"}; console.log(JSON.parse(data.document.replace(/'/g, '"'))) 

那么document已经是一个object ,它指向windowdocument全局variables,它不是一个string所以你不能parsing它。 这就是为什么你会得到:

SyntaxError:意外的标记'在JSON在位置1

所以,如果你有一个object你需要先对它进行string化,然后才能parsing它,所以使用:

 JSON.stringify(doc); 

注意:

请注意,如果您已将document声明为variables,则document对于variables来说是一个错误的名称,因为它已经是指向当前documentwindow的全局对象名称,使用它将导致很多错误。

但是,如果它在你的data内部,那么就像JSON.parse(data)一样,你正在处理来自response data对象。

演示:

 var data = {"document":"{'baz': 'qux', 'foo': 'bar'}"}; console.log(JSON.stringify(data));