javascript格式化json显示实例分析


Posted in Javascript onApril 21, 2015

本文实例讲述了javascript格式化json显示方法。分享给大家供大家参考。具体分析如下:

将json对象或者json字符串格式化方便在网页上限制

var formatJson = function(json, options) {
 var reg = null,
 formatted = '',
 pad = 0,
 PADDING = ''; 
 //one can also use '\t' or a different number of spaces
 // optional settings
 options = options || {};
 // remove newline where '{' or '[' follows ':'
 options.newlineAfterColonIfBeforeBraceOrBracket = (options.newlineAfterColonIfBeforeBraceOrBracket === true) ? true : false;
 // use a space after a colon
 options.spaceAfterColon = (options.spaceAfterColon === false) ? false : true;
 // begin formatting...
 if (typeof json !== 'string') {
 // make sure we start with the JSON as a string
 json = JSON.stringify(json);
 } else {
 // is already a string, so parse and re-stringify
 //in order to remove extra whitespace
 json = JSON.parse(json);
 json = JSON.stringify(json);
 }
 // add newline before and after curly braces
 reg = /([\{\}])/g;
 json = json.replace(reg, '\r\n$1\r\n');
 // add newline before and after square brackets
 reg = /([\[\]])/g;
 json = json.replace(reg, '\r\n$1\r\n');
 // add newline after comma
 reg = /(\,)/g;
 json = json.replace(reg, '$1\r\n');
 // remove multiple newlines
 reg = /(\r\n\r\n)/g;
 json = json.replace(reg, '\r\n');
 // remove newlines before commas
 reg = /\r\n\,/g;
 json = json.replace(reg, ',');
 // optional formatting...
 if (!options.newlineAfterColonIfBeforeBraceOrBracket) { 
 reg = /\:\r\n\{/g;
 json = json.replace(reg, ':{');
 reg = /\:\r\n\[/g;
 json = json.replace(reg, ':[');
 }
 if (options.spaceAfterColon) {  
 reg = /\:/g;
 json = json.replace(reg, ': ');
 }
 $.each(json.split('\r\n'), function(index, node) {
 var i = 0,
  indent = 0,
  padding = '';
 if (node.match(/\{$/) || node.match(/\[$/)) {
  indent = 1;
 } else if (node.match(/\}/) || node.match(/\]/)) {
  if (pad !== 0) {
  pad -= 1;
  }
 } else {
  indent = 0;
 }
 for (i = 0; i < pad; i++) {
  padding += PADDING;
 }
 formatted += padding + node + '\r\n';
 pad += indent;
 });
 return formatted;
};

关于json格式化感兴趣的朋友还可参考在线工具:

JSON代码工具

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript之对系统的toFixed()方法的修正
May 08 Javascript
range 标准化之获取
Aug 28 Javascript
通过jQuery源码学习javascript(一)
Dec 27 Javascript
Angularjs全局变量被作用域监听的正确姿势
Feb 06 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
Jan 21 Javascript
jQuery实现简单弹窗遮罩效果
Feb 27 Javascript
vue组件间通信子与父详解(二)
Nov 07 Javascript
详解Eslint 配置及规则说明
Sep 10 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
Jul 19 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
layui输入框中只允许输入整数的实现方法
Sep 18 Javascript
JavaScript中数组去重的5种方法
Jul 04 Javascript
JavaScript汉诺塔问题解决方法
Apr 21 #Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
Apr 21 #Javascript
JavaScript实现动画打开半透明提示层的方法
Apr 21 #Javascript
javascript格式化指定日期对象的方法
Apr 21 #Javascript
jQuery固定元素插件scrolltofixed使用指南
Apr 21 #Javascript
javascript判断数组内是否重复的方法
Apr 21 #Javascript
jQuery菜单插件superfish使用指南
Apr 21 #Javascript
You might like
77A一级收信机修理记
2021/03/02 无线电
用Socket发送电子邮件
2006/10/09 PHP
简单的php 验证图片生成函数
2009/05/21 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
理解javascript对象继承
2016/04/17 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
python-numpy-指数分布实例详解
2019/12/07 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
python怎么自定义捕获错误
2020/06/29 Python
python热力图实现简单方法
2021/01/29 Python
广告学专业推荐信范文
2013/11/23 职场文书
药品业务员岗位职责
2014/04/17 职场文书
医德医风自我评价
2014/09/19 职场文书
信息合作协议书
2014/10/09 职场文书
感恩的心主题班会
2015/08/12 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python