原生js格式化json工具

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>

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

时间: 2024-10-07 17:24:53

原生js格式化json工具的相关文章

js格式化json数据 + json着色 - 附源码

其实json格式化没想象中的那么复杂,难点就是json格式化的工作流程. 正好工作上需要,于是就搞了一套json格式化+json着色的方法,原生的方法,可以直接使用.json数据格式化前后对比图,如下: 下面是源码,可以根据个人需求适当修改: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>js格

JS格式化JSON后的日期

最近在做微信小程序 写了个WCF服务,返回实体中有DateTime类型字段 结果序列化后日期变成了 /Date(1494524134000+0800)\ 这种格式 不能正常显示了 但也不能为了这个吧所有服务的DateTime字段都改成String类型 于是找了一个JS的扩展方法来格式化日期 function ChangeDateFormat(jsondate) { jsondate = jsondate.replace("/Date(", "").replace(&

原生js实现JSON.parse()和JSON.stringify()

- 首先JSON.stringify()是将js对象转换为JSON形式 实现思路: 通过递归调用,来实现对转换对象Object的深层value进行遍历,利用array的join实现最终字符串拼接 function myJsonStringify(obj) { let type = typeof obj; if (type !== "object" || type === null) { if (/string|undefined|function/.test(type)) { obj

原生js转json

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

js格式化json格式的日期

/* var val = '/Date(1470067200000)/'; */ function formatDate(val, formatType) { if (val == undefined) { return ''; } var reg = /^\/Date\(\d+\)\/$/; if(!reg.test(val)) return'';//格式不正确 ,返回空 var strDate = val.substr(1, val.length - 2); var obj = eval('

js实现格式化JSON数据方法

前言: 最近做的项目中遇到个需要在前端页面中将某个设备需要的数据格式展示出来,方便用户配置.一开始单纯的将数据格式写入到pre标签中, 但是通过pre标签写入的数据格式在代码可视化上不是很优雅.由于上述原因,所以就创建了一个全局的数据格式配置文件,通过es6 中的模板字符串来实现,这样就解决了代码可视化不优雅的问题.但是后面又增加了一个动态数据格式的需求,这样一来就不能通过模板字符串来 解决了,所以就有了这篇文章中讲述的通过js格式画JSON数据的方案,这篇文章旨在记录方案实现的方法,方便自己

原生js封装ajax:传json,str,excel文件上传表单提交

由于项目中需要在提交ajax前设置header信息,jquery的ajax实现不了,我们自己封装几个常用的ajax方法. jQuery的ajax普通封装 var ajaxFn = function(uri, data, cb) { $.ajax({ url: uri, type: 'POST', dataType: 'json', data: data, }) .done(cb) .fail(function() { console.log("error"); }) .always(f

js读取json文件的方式——原生js,juqery,extjs

原生js 一,ajax方式. var xmlhttp=new XMLHttpRequest();xmlhttp.open('get','json/data.json',true);xmlhttp.send(null);xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4) { if(xmlhttp.status==200){ console.log(json_encode(xmlhttp.responseText)); }

jq 一个强悍的json格式化查看工具

本文来自网易云社区 作者:娄超 在web 2.0时代json这种直观.灵活.高效数据格式基本已经成为一种标准格式,从各种web api,到配置文件,甚至现在连mysql都开始支持json作为数据类型. 但是在平时开发运维中往往因为格式问题或者输出数据太多,体验不是很爽,之前我就经常需要借助一些json自动语法检查.格式化.分层折叠的工具(如http://www.bejson.com/ ), 往往还是需要来回拷贝,还是觉得很麻烦. 所以,一直希望有个linux命令行的简单命令(python的jso