Javascript 将字符串转换为Json以应用Json修补程序
我正在尝试使用postmon-in请求一个json字符串来应用json补丁。问题是我无法将字符串转换为json,因为数据是通过变量发布的。每次我这样做Javascript 将字符串转换为Json以应用Json修补程序,javascript,json,node.js,express,Javascript,Json,Node.js,Express,我正在尝试使用postmon-in请求一个json字符串来应用json补丁。问题是我无法将字符串转换为json,因为数据是通过变量发布的。每次我这样做 JSON.parse(document); 我得到以下错误: SyntaxError: Unexpected token ' in JSON at position 1 我发送的数据如下 {"document":"{'baz': 'qux', 'foo': 'bar'}"} 通过邮递员使用post方法 我正在使用req.body来获取pos
JSON.parse(document);
我得到以下错误:
SyntaxError: Unexpected token ' in JSON at position 1
我发送的数据如下
{"document":"{'baz': 'qux', 'foo': 'bar'}"}
通过邮递员使用post方法
我正在使用req.body来获取post数据那么
文档
已经是一个对象
,它指向窗口
中的文档
全局变量,并且它不是一个字符串
,因此您无法解析它。这就是为什么你会得到:
SyntaxError:JSON中位置1处的意外标记
因此,如果您有一个对象
,您需要在解析它之前对其进行字符串化,因此请使用:
JSON.stringify(doc);
注意:
请注意,如果您已将文档
声明为变量,文档
对于变量来说是一个坏名称,因为它已经是指向当前文档
的窗口中的全局对象名,使用它将导致许多错误
但是,如果它在数据
中,那么在处理响应中的数据
对象时,它将是JSON.parse(data)
演示:
var data={“document”:“{'baz':'qux','foo':'bar'}”;
log(JSON.stringify(data))代码>
单引号格式不正确,因此
解析器将不接受单引号,并将抛出以下错误
SyntaxError:JSON中位置1处的意外标记
因此,为了能够将该字符串解析为json,您需要在解析之前使用str.replace()将“引号”替换为“引号”
演示:
var data={“document”:“{'baz':'qux','foo':'bar'}”;
console.log(JSON.parse(data.document.replace(/“/g,””))
为什么不发送JSON?您可以只在对象上使用JSON.stringify
。此错误意味着您正在解析一个未stringify的字符串,该字符串无效。数据仍在字符串中,我将无法使用apple JSONPATCH。我需要从用户那里获取JSON数据和补丁数据的输入,并将补丁数据发送回用户。JSON要求使用双引号引用属性和字符串,而不是单引号
"{'baz': 'qux', 'foo': 'bar'}" is not a valid json string.