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 相关文章推荐
jQuery使用手册之一
Mar 24 Javascript
jQuery Autocomplete自动完成插件
Jul 17 Javascript
JavaScript访问样式表代码
Oct 15 Javascript
关于jquery input textare 事件绑定及用法学习
Apr 03 Javascript
为jQuery添加Webkit的触摸的方法分享
Feb 02 Javascript
jQuery选择id属性带有点符号元素的方法
Mar 17 Javascript
javascript实现倒计时(精确到秒)
Jun 26 Javascript
JavaScript清空数组元素的两种方法简单比较
Jul 10 Javascript
基于javascript实现图片左右切换效果
Jan 25 Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 Javascript
vue实现选项卡及选项卡切换效果
Apr 24 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 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
音乐朗读剧《MARS RED》2021年TV动画化决定!
2020/03/06 日漫
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
php Calender(日历)代码分享
2014/01/03 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
js 深拷贝函数
2008/12/04 Javascript
jQuery学习笔记[1] jQuery中的DOM操作
2010/12/03 Javascript
javascript 闭包
2011/09/15 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
SQLite3中文编码 Python的实现
2017/01/11 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
python hashlib加密实现代码
2019/10/17 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
appium+python adb常用命令分享
2020/03/06 Python
python操作redis数据库的三种方法
2020/09/10 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
网站编辑求职信
2013/10/17 职场文书
淘宝活动策划方案
2014/02/06 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis