Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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对象_Javascript_Node.js_Json_Reactjs - Fatal编程技术网

在JavaScript中格式化JSON对象

在JavaScript中格式化JSON对象,javascript,node.js,json,reactjs,Javascript,Node.js,Json,Reactjs,我有一个JSON对象,其中键和值的格式不同。我想把它格式化成正确的JSON格式。PFB JSON数据 我想在下面转换json { \"abc\": \"test\", \"xyz\": \"test1\", \"array\": [ { \"path\": [\"test\"], \"o

我有一个JSON对象,其中键和值的格式不同。我想把它格式化成正确的JSON格式。PFB JSON数据

我想在下面转换json

  {
              \"abc\": \"test\",
              \"xyz\": \"test1\",
              \"array\": [
                  {
                      \"path\": [\"test\"],
                      \"output\": {}
                  }
              ]
    } 
格式如下

 {
            "abc": "test",
            "xyz": "test1",
            "array": [
                {
                    "path": ["test"],
                    "output": {}
                }
            ]
   }
我从数据库中获取这个JSON,需要将其转换为有效的JSON


我不知道如何格式化这个JSON。是否有任何正则表达式将格式化整个JSON对象?

是的,您可以使用此正则表达式:
\\“
并将捕获的结果替换为
。如果变量
data
没有有效的json,则可以使用以下代码:

data.replace(/\\"/g,'"');

下面是regexp示例:

如果您将此数据作为字符串获取,只需执行以下操作:

JSON.stringify(JSON.parse(data))


答案只是为了以防万一,当您有带转义的
”的字符串时,如果有其他符号,
JSON.parse
可能会抛出错误。

实际上
JSON.parse
就足够了
var数据=`{
\“abc\”:“测试\”,
\“xyz\”:“test1\”,
\“数组\”:[
{
\“路径\:[\“测试\]”,
\“输出\”:{}
}
]
}`;

console.log(JSON.parse(data));
@Jite您多长时间谈论一次JSON布尔值或JSON数字?有两个常见的“compount JSON”单词-一个JSON字符串,实际上就是JSON(因为它已经是一个字符串)还有一个JSON对象,人们错误地使用它来指代JSON或JavaScript对象“是引用JSON成员作为对象的正确方式,那么您就是我见过的第一个这样做的人。当人们谈论JSON时,他们已经知道对象是什么成员,通常不会想到Java或Smalltalk。限定词是无用的。@vlaz,如果没有早期的上下文,我可能会包含json这个词。如果我已经在谈论JSON,我可能只会使用数据类型。我并不是说这是将数据类型称为JSON对象的最佳方式,但我是说这是一种有效的方式,在这种情况下这样说是一个好主意,因为它没有明显的上下文。好的,没问题。在Stack Overflow上的内容贡献者中,有一种愿望是以技术写作为目标,以便将来的读者能够尽可能地阅读文章。可能是规范引用。因此,我们(和我)要求你不要发表闲聊的内容。例如,关于你之前的一个问题,我有时会给出以下建议,这些建议适用于你的博文记录中的许多项目:注意,我们更喜欢这里的技术写作风格。我们轻轻地劝阻问候,希望你能帮助,谢谢,提前感谢,感谢信,问候,亲切的问候,签名,请你能帮助,闲聊的材料和缩写的txtspk,恳求,你被困多久了,投票建议,元评论等。只需解释你的问题,并展示你已经尝试了什么,你期望什么,“到底发生了什么呢?”哈弗谢谢你的时间。我同意你的意见,我也会这么做,谢谢你,在我完成JSON.stringify(JSON.parse(data))之后,这一切都很好;模板文本起到了神奇的作用。这正是发生的事情,但在将JSON放入模板后,解析就起作用了literalsliterals@Think-两次JSON.parse(data)对无效的JSON不起作用-例如,请尝试以下操作:
var data='{\\'abc\\“:\\'test\\'}
(这将在
data
以下字符串中生成:
'{\'abc\\:\'test\'}“
)-对于此字符串,解析时将出现异常。所以,如果数据库返回无效字符串,则需要在解析之前修复它。
const data = '{\"abc\": \"test\",\"xyz\": \"test1\",\"array\":[{ \"path\":[\"test\"],\"output\":{}}]}';


var jsondata = JSON.parse(data);
console.log('jsondata: ', jsondata);

var regex = data.replace(/\\/g, '');
console.log('regex: ', regex);