Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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 JS:将textarea中的值转换为有效的JSON对象_Javascript_Json - Fatal编程技术网

Javascript JS:将textarea中的值转换为有效的JSON对象

Javascript JS:将textarea中的值转换为有效的JSON对象,javascript,json,Javascript,Json,我试图创建一个textarea,用户可以在其中编辑JSON对象以更改程序配置。当用户试图保存配置并将textarea的值转换为JSON对象时,将运行此代码 // Convert the value into a JSON ready string var rule = JSON.stringify($(this).val()); rule = JSON.parse(rule); alert(JSON.stringify(rule)); /* The alerted string: "{\n

我试图创建一个textarea,用户可以在其中编辑JSON对象以更改程序配置。当用户试图保存配置并将textarea的值转换为JSON对象时,将运行此代码

// Convert the value into a JSON ready string
var rule = JSON.stringify($(this).val());

rule = JSON.parse(rule);

alert(JSON.stringify(rule));

/* The alerted string:
"{\n    \"thing1\": \"\",\n    \"thing2\": [],\n    \"thing3\": [],\n    \"thing4\": [],\n    \"thing5\": [],\n    \"thing6\": false,     \n}"
*/

代码完成时没有抛出任何错误,但创建的JSON字符串仍然填充了换行符。尝试访问任何键,例如alert(rule.thing6);返回nothing而不是false。如何将textarea值转换为有效的JSON对象?我不需要保留换行符。

实际字符串不包含换行符(\n),而是转义的换行符(\n)。换行符将被渲染为换行符

要删除这些内容,请像下面这样使用
.replace(/\\n/g')
(JSON.stringify(rule)).replace(/\\n/g')


最后还有一个逗号,这使得json无效。
\“thing6\”:false,}“
应该是
\“thing6\”:false}”

此外,json对象不能在最后一个属性后包含(逗号)


\'thing6\':false,}“
应该是
\'thing6\':false}”
这个。

JSON.stringify用于将javascript对象转换为JSON字符串。您从textarea获得的值已经是一个(可能是JSON)字符串

因此,您可以跳过stringify步骤,只需对其进行解析

// Convert the value into a JSON ready string
var rule = JSON.parse($(this).val());

alert(JSON.stringify(rule))

这会删除换行符,但JSON仍然不起作用。
“{\'website\”:\”,“tags\:[],“ignore\u blacklist\u tags\”:[],“blacklist\u tags\”:[],“blacklist\u url\”:[],“chain\”:false,}“
最后有一个逗号,这使得JSON无效。
“thing6\”:false,}“
应该是
”thing6\“:false}”
// Convert the value into a JSON ready string
var rule = JSON.parse($(this).val());

alert(JSON.stringify(rule))