jQuery处理json数据返回数组和输出的方法


Posted in Javascript onMarch 11, 2015

本文实例讲述了jQuery处理json数据返回数组和输出的方法。分享给大家供大家参考。具体实现方法如下:

/*print the json object

 *

 *$("selector").print_r_json(json,opts) : return formatted string (and print)

 *sprint_r_json : just return the string;

 *print_r_json : return the formatted string and print json data

 *contribute 明河

 *

 *auth iorichina

 *

 *example: 

 *3 ways to use it

 *<script language="javascript">

 *$("selector").print_r_json({"a":"aa","d":{"ef":{"a":"d","d":["a","b"]},"ed":"dd"},"g":"g"},{if_print:true,return_array:true});

 *document.write($.sprint_r_json({"a":"aa","d":{"ef":{"a":"d","d":["a","b"]},"ed":"dd"},"g":"g"}));

 *$.print_r_json({"a":"aa","d":{"ef":{"a":"d","d":["a","b"]},"ed":"dd"},"g":"g"});

 *</script>

 *

*/

$.fn.print_r_json = function(json,options){

    if(typeof(json)!="object") return false;

    var opts = $.extend({},$.fn.print_r_json.defaults,options);

    var data = '';

    if(opts.if_print)

    {

        data = $.sprint_r_json(json)

        $(this).html('<div style="font-weight:bold">'+(opts.return_array?'Array':'JSON-DATA')+'</div>'+data);

    }

    if(opts.array)

    {

        return $.json_to_array(json);

    }

    return data;

};

$.fn.print_r_json.defaults = 

{

    if_print : false,//if print or just return formatted string

    return_array : true //return an Array 

};

$.extend({

    print_r_json : function(json)

    {

        if(typeof(json)=="object")

        {

            var text='<div style="font-weight:bold;">{</div><div style="margin-left:25px;">';

          document.write('<div style="font-weight:bold;">{</div><div style="margin-left:25px;">');

          for(var p in json)

          {

            if(typeof(json[p])=="object")

            {

              document.write('<div>["'+p+'"] => ');

                text+='<div>["'+p+'"] => '+$.print_r_json(json[p])+'</div>';

              document.write('</div>');

            }

            else

            {

                text+='<div>['+((/^\d+$/).test(p)?p:('"'+p+'"'))+'] => "'+json[p]+'"</div>';

              document.write('<div>['+p+'] => '+json[p]+'</div>');

            }

          }  

          text+='</div><div style="font-weight:bold;">}</div>';

          document.write('</div><div style="font-weight:bold;">}</div>');

          return (text);

        }

        else

        {

            document.write(json);

            return (json);

        }

    },

    sprint_r_json : function(json)

    {

        if(typeof(json)=="object")

        {

          var text = '<div style="font-weight:bold;">{</div><div style="margin-left:25px;">';

          for(var p in json)

          {

            if(typeof(json[p])=="object")

            {

              text += '<div>["'+p+'"] => '+$.sprint_r_json(json[p])+'</div>';

            }

            else

            {

              text += '<div>['+((/^\d+$/).test(p)?p:('"'+p+'"'))+'] => "'+json[p]+'"</div>';

            }

          }  

          text += '</div><div style="font-weight:bold;">}</div>';

          return (text);

        }

        else

        {

            return (json);

        }

    },

    json_to_array : function(json)

    {

        if(typeof(json)=="object")

        {

          var text = new Array();

          for(var p in json)

          {

            if(typeof(json[p])=="object")

            {

              text[p] = $.json_to_array(json[p]);

            }

            else

            {

              text[p] = json[p];

            }

          }

          return (text);

        }

        else

        {

            return (json);

        }

    }

});

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
用javascript实现页面打印的三种方法
Mar 05 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
Mar 21 Javascript
Js与Jq获取浏览器和对象值的方法
Mar 18 Javascript
用jQuery获取table中行id和td值的实现代码
May 19 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
Jun 20 Javascript
深入理解vue.js中的v-if和v-show
Jun 22 Javascript
vue 粒子特效的示例代码
Sep 19 Javascript
JS正则表达式完美实现身份证校验功能
Oct 18 Javascript
bootstrap下拉分页样式 带跳转页码
Dec 29 Javascript
Html5生成验证码的示例代码
May 10 Javascript
JavaScript 定时器详情
Nov 11 Javascript
jquery实现表格本地排序的方法
Mar 11 #Javascript
jQuery实现渐变下拉菜单的简单方法
Mar 11 #Javascript
jQuery实现新消息闪烁标题提示的方法
Mar 11 #Javascript
javascript实现详细时间提醒信息效果的方法
Mar 11 #Javascript
JavaScript实现SHA-1加密算法的方法
Mar 11 #Javascript
JavaScript前补零操作实例
Mar 11 #Javascript
JavaScript限定图片显示大小的方法
Mar 11 #Javascript
You might like
php设计模式 Command(命令模式)
2011/06/26 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
2013/06/06 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
2016/03/15 PHP
详解json在php中的应用
2018/09/30 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
利用Python实现图书超期提醒
2016/08/02 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
关于Django外键赋值问题详解
2017/08/13 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
vue常用指令代码实例总结
2020/03/16 Python
详解Python yaml模块
2020/09/23 Python
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
软件测试题目
2013/02/27 面试题
师范生实习的个人自我鉴定
2013/10/20 职场文书
学校万圣节活动方案
2014/02/13 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
党支部审查意见
2015/06/02 职场文书
历史博物馆观后感
2015/06/05 职场文书
2016年端午节寄语
2015/12/04 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python