码迷,mamicode.com
首页 > Web开发 > 详细

原生js格式化json工具

时间:2018-07-02 12:34:49      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:利用   idt   pre   row   width   info   index   textarea   引用   

json格式化小工具,原生js编写,直接上代码:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>原生js格式化json的方法</title>
 6     <script>
 7     //格式化代码函数,已经用原生方式写好了不需要改动,直接引用就好
 8     var formatJson = function (json) {
 9         var formatted = ‘‘,     //转换后的json字符串
10             padIdx = 0,         //换行后是否增减PADDING的标识
11             PADDING =     ;   //4个空格符
12         /**
13          * 将对象转化为string
14          */
15         if (typeof json !== string) {
16             json = JSON.stringify(json);
17         }
18         /** 
19          *利用正则类似将{‘name‘:‘ccy‘,‘age‘:18,‘info‘:[‘address‘:‘wuhan‘,‘interest‘:‘playCards‘]}
20          *---> \r\n{\r\n‘name‘:‘ccy‘,\r\n‘age‘:18,\r\n
21          *‘info‘:\r\n[\r\n‘address‘:‘wuhan‘,\r\n‘interest‘:‘playCards‘\r\n]\r\n}\r\n
22          */
23         json = json.replace(/([\{\}])/g, \r\n$1\r\n)
24                     .replace(/([\[\]])/g, \r\n$1\r\n)
25                     .replace(/(\,)/g, $1\r\n)
26                     .replace(/(\r\n\r\n)/g, \r\n)
27                     .replace(/\r\n\,/g, ,);
28         /** 
29          * 根据split生成数据进行遍历,一行行判断是否增减PADDING
30          */
31        (json.split(\r\n)).forEach(function (node, index) {
32             var indent = 0,
33                 padding = ‘‘;
34             if (node.match(/\{$/) || node.match(/\[$/)) indent = 1;
35             else if (node.match(/\}/) || node.match(/\]/))  padIdx = padIdx !== 0 ? --padIdx : padIdx;
36             else    indent = 0;
37             for (var i = 0; i < padIdx; i++)    padding += PADDING;
38             formatted += padding + node + \r\n;
39             padIdx += indent;
40             console.log(index:+index+,indent:+indent+,padIdx:+padIdx+,node-->+node);
41         });
42         return formatted;
43     };
44     //引用示例部分
45     //var originalJson = {‘name‘:‘ccy‘,‘age‘:18,‘info‘:[{‘address‘:‘wuhan‘},{‘interest‘:‘playCards‘}]};
53     var showJson = function(){
54         var originalJson = document.getElementById(inputJson).value;
55         console.log(originalJson);
56         //(2)调用formatJson函数,将json格式进行格式化
57         var resultJson = formatJson(originalJson);
60         document.getElementById(out).innerHTML = resultJson;
61     }
62 </script>
63 </head>
64 <body>
65     <span style="position:absolute;left:0px;top:20px;font-size: 20px;font-family: ‘微软雅黑‘;color: #2F4F4F;">输入json</span>
66     <textarea style="position:absolute;left:0px;top:80px;width:40%;height:80%;" cols="50" rows="20" id="inputJson"></textarea>
67     <span style="position:absolute;left:55%;top:20px;font-size: 20px;font-family: ‘微软雅黑‘;color: #2F4F4F;">查看结果</span>
68     <textarea style="position:absolute;left:55%;top:80px;width:40%;height:80%;display: " id="out"></textarea>
69     <div style="position:absolute;left:45%;top:12%;width:6%;height:4%;">
70     <input type="button" value="提交" onclick="showJson();">
71     </div>
73 </body>
74 </html>

 

原生js格式化json工具

标签:利用   idt   pre   row   width   info   index   textarea   引用   

原文地址:https://www.cnblogs.com/ccylovehs/p/9253237.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!