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 相关文章推荐
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
关于JavaScript命名空间的一些心得
Jun 07 Javascript
javascript获取当前鼠标坐标的方法
Jan 10 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
Dec 02 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
Jan 23 Javascript
详解Node.Js如何处理post数据
Sep 19 Javascript
微信小程序 简单教程实例详解
Jan 13 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
May 24 Javascript
JS实现的走迷宫小游戏完整实例
Jul 19 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
Jun 19 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
Jul 11 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
Jun 05 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
PHP 一个随机字符串生成代码
2010/05/26 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
php接口隔离原则实例分析
2019/11/11 PHP
又一个小巧的图片预加载类
2007/05/05 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
Python实现获取操作系统版本信息方法
2015/04/08 Python
wxPython中listbox用法实例详解
2015/06/01 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
django解决订单并发问题【推荐】
2019/07/31 Python
pycharm运行scrapy过程图解
2019/11/22 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
Python实现像awk一样分割字符串
2020/09/15 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
电子商务网站的创业计划书
2014/01/05 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
班主任工作实习计划
2015/01/16 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书