Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字符串转换为Json以应用Json修补程序_Javascript_Json_Node.js_Express - Fatal编程技术网

Javascript 将字符串转换为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

我正在尝试使用postmon-in请求一个json字符串来应用json补丁。问题是我无法将字符串转换为json,因为数据是通过变量发布的。每次我这样做

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.