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 相关文章推荐
硬盘浏览程序,保存成网页格式便可使用
Dec 03 Javascript
JavaScript方法和技巧大全
Dec 27 Javascript
Javascript面向对象编程(三) 非构造函数的继承
Aug 28 Javascript
js设置document.domain实现跨域的注意点分析
May 21 Javascript
jquery简单实现外部链接用新窗口打开的方法
May 30 Javascript
通过实例理解javascript中没有函数重载的概念
Jun 03 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
Jun 03 Javascript
微信小程序教程系列之视图层的条件渲染(10)
Apr 19 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
Sep 11 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
关于引入vue.js 文件的知识点总结
Jan 28 Javascript
javascript实现电商放大镜效果
Nov 23 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
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
移动节点的jquery代码
2014/01/13 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
详解JS函数防抖
2020/06/05 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
Flask框架信号用法实例分析
2018/07/24 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
深入了解Python 方法之类方法 &amp; 静态方法
2020/08/17 Python
python 如何将office文件转换为PDF
2020/09/22 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
学期评语大全
2014/04/30 职场文书
支部鉴定材料
2014/06/02 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
优质护理心得体会
2016/01/22 职场文书
Python办公自动化解决world文件批量转换
2021/09/15 Python
如何通过cmd 连接阿里云服务器
2022/04/18 Servers