将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
,它指向window
的document
全局variables,它不是一个string
所以你不能parsing它。 这就是为什么你会得到:
SyntaxError:意外的标记'在JSON在位置1
所以,如果你有一个object
你需要先对它进行string化,然后才能parsing它,所以使用:
JSON.stringify(doc);
注意:
请注意,如果您已将document
声明为variables,则document
对于variables来说是一个错误的名称,因为它已经是指向当前document
的window
的全局对象名称,使用它将导致很多错误。
但是,如果它在你的data
内部,那么就像JSON.parse(data)
一样,你正在处理来自response
data
对象。
演示:
var data = {"document":"{'baz': 'qux', 'foo': 'bar'}"}; console.log(JSON.stringify(data));