在JavaScript中格式化JSON对象
我有一个JSON对象,其中键和值的格式不同。我想把它格式化成正确的JSON格式。PFB JSON数据 我想在下面转换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
{
\"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);