javascript格式化json显示实例分析

 更新时间:2015年04月21日 14:56:51   作者:肥佬  
这篇文章主要介绍了javascript格式化json显示,实例分析了javascript操作json格式化的相关技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • js实现iframe动态调整高度的代码

    js实现iframe动态调整高度的代码

    iframe,尤其是不带边框的iframe因为能和网页无缝的结合从而不刷新页面的情况下更新页面的部分数据成为可能,可是iframe的大小却不像层那样可以“伸缩自如”,所以带来了使用上的麻烦,给iframe设置高度的时候多了也不好,少了更是不行,现在,让我来告诉大家一种iframe动态调整高度的方法,主要是以下JS函数:
    2008-01-01
  • JS引用传递与值传递的区别与用法分析

    JS引用传递与值传递的区别与用法分析

    这篇文章主要介绍了JS引用传递与值传递的区别与用法,结合实例形式较为详细的对比分析了javascript引用传递与值传递的原理、区别、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-06-06
  • JavaScript实现英语单词题库

    JavaScript实现英语单词题库

    这篇文章主要为大家详细介绍了JavaScript实现英语单词题库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • JS highcharts动态柱状图原理及实现

    JS highcharts动态柱状图原理及实现

    这篇文章主要介绍了JS highcharts动态柱状图原理及实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • JavaScript 中的行继续符操作

    JavaScript 中的行继续符操作

    JavaScript 中的字符串操作可能很复杂, 尽管字符串操作易于掌握,但实施起来却具有挑战性,其中一个相关领域是添加新行,这篇文章主要介绍了JavaScript中的行继续符操作,需要的朋友可以参考下
    2023-06-06
  • 用javascript读取xml文件读取节点数据

    用javascript读取xml文件读取节点数据

    这篇文章主要介绍了用javascript读取xml文件读取节点数据的具体实现,需要的朋友可以参考下
    2014-08-08
  • JavaScript中的apply()方法和call()方法使用介绍

    JavaScript中的apply()方法和call()方法使用介绍

    我们发现apply()和call()的真正用武之地是能够扩充函数赖以运行的作用域,如果我们想用传统的方法实现
    2012-07-07
  • 收集的比较全的automation服务器不能创建对象 异常原因和解决方法

    收集的比较全的automation服务器不能创建对象 异常原因和解决方法

    对于出现automation服务器不能创建对象的问题,下面有几种解决方法大家可以试试。
    2008-10-10
  • 小程序和web画三角形实现解析

    小程序和web画三角形实现解析

    这篇文章主要介绍了小程序和web画三角形实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • antd Upload 文件上传的示例代码

    antd Upload 文件上传的示例代码

    这篇文章主要介绍了antd Upload 文件上传的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12

最新评论