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极简入门教程(三):数组
Oct 25 Javascript
node.js中的http.response.end方法使用说明
Dec 14 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
Mar 29 Javascript
浅谈JavaScript的计时器对象
Dec 26 Javascript
js实现瀑布流效果(自动生成新的内容)
Mar 16 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 jQuery
简述Angular 5 快速入门
Nov 04 Javascript
js 数组详细操作方法及解析合集
Jun 01 Javascript
JavaScript new对象的四个过程实例浅析
Jul 31 Javascript
JS学习笔记之原型链和利用原型实现继承详解
May 29 Javascript
vue store之状态管理模式的详细介绍
Jun 13 Javascript
【js设计模式】SOLID五大设计原则
Mar 24 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&amp;mysql(五)
2006/10/09 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
很酷的javascript loading效果代码
2008/06/18 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
Python中字符编码简介、方法及使用建议
2015/01/08 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
.NET方向面试题
2014/11/20 面试题
优秀学生自我鉴定范例
2013/12/18 职场文书
幼儿园春季开学寄语
2014/04/03 职场文书
公司新年寄语
2014/04/04 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
物业工程部岗位职责
2015/02/11 职场文书
驳回起诉裁定书
2015/05/19 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android