我从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" }请帮帮忙。
发布于 2014-08-26 01:48:25
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"
}JSFiddle:http://jsfiddle.net/rahulrulez/jq1ot5j5/
https://stackoverflow.com/questions/25491460
复制相似问题