我从JFiddle获得了以下代码,这有助于我美化json。
if (!library)
var library = {};
library.json = {
replacer: function(match, pIndent, pKey, pVal, pEnd) {
var key = '<span class=json-key>';
var val = '<span class=json-value>';
var str = '<span class=json-string>';
var r = pIndent || '';
if (pKey)
r = r + key + pKey.replace(/[": ]/g, '') + '</span>: ';
if (pVal)
r = r + (pVal[0] == '"' ? str : val) + pVal + '</span>';
return r + (pEnd || '');
},
prettyPrint: function(obj) {
var jsonLine = /^( *)("[\w]+": )?("[^"]*"|[\w.+-]*)?([,[{])?$/mg;
return JSON.stringify(obj, null, 3)
.replace(/&/g, '&').replace(/\\"/g, '"')
.replace(/</g, '<').replace(/>/g, '>')
.replace(jsonLine, library.json.replacer);
}
};
但是在以美化形式进行一些小编辑之后,我想让json恢复正常状态。
我在样本json上试了一下
{ active: "<b>something</b>", codes: [48348, 28923, 39080], city: "London" }
我在下面给出了什么。
var prettyJson = $("#prettyJsonContainer").text(); //this will strip all html tags
var pureJson = JSON.stringify(prettyJson);
但结果是
"{\n active: \"<b>something</b>\",\n codes: [\n 48348,\n 28923,\n 39080\n ],\n city: \"London\"\n}"
预期的Json是
{ active: "<b>something</b>", codes: [48348, 28923, 39080], city: "London" }
请帮忙。
答案 0 :(得分:0)
var str = "{\n active: \"<b>something</b>\",\n codes: [\n 48348,\n 28923,\n 39080\n ],\n city: \"London\"\n}";
str = str.replace(/\\/g, "");
console.log(str);
这将删除\ n,JSON和输出中的所有空格将如下:
{
active: "<b>something</b>",
codes: [
48348,
28923,
39080
],
city: "London"
}