首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将美化的JSON转换回正常状态

将美化的JSON转换回正常状态
EN

Stack Overflow用户
提问于 2014-08-26 01:43:12
回答 1查看 330关注 0票数 1

我从JFiddle得到了以下代码,它帮助我美化了一个json。

代码语言:javascript
复制
        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, '&amp;').replace(/\\"/g, '&quot;')
                 .replace(/</g, '&lt;').replace(/>/g, '&gt;')
                 .replace(jsonLine, library.json.replacer);
              }
           };

但是在美化后的表单中做了一些小的编辑之后,我想让json恢复到正常的形式。

我在一个样例json上尝试了一下。

代码语言:javascript
复制
  { active: "<b>something</b>", codes: [48348, 28923, 39080], city: "London" }

我所做的事情如下所示。

代码语言:javascript
复制
var prettyJson = $("#prettyJsonContainer").text(); //this will strip all html tags
var pureJson = JSON.stringify(prettyJson);

但结果是

代码语言:javascript
复制
"{\n   active: \"<b>something</b>\",\n   codes: [\n      48348,\n      28923,\n      39080\n   ],\n   city: \"London\"\n}"

预期的Json是

代码语言:javascript
复制
     { active: "<b>something</b>", codes: [48348, 28923, 39080], city: "London" }

请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2014-08-26 01:48:25

代码语言:javascript
复制
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中的所有空格,输出将如下所示:

代码语言:javascript
复制
{
   active: "<b>something</b>",
   codes: [
      48348,
      28923,
      39080
   ],
   city: "London"
}

JSFiddle:http://jsfiddle.net/rahulrulez/jq1ot5j5/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25491460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档