• 使用Jquery解析JSON数据的方法介绍
    时间:2011-12-10   作者:佚名   出处:IT知道网

    用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。 这里首先给出JSON字符串集,

    用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器 返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。

    这里首先给出JSON字符串集,字符串集如下:
    代码如下:
    var data="
    {
         root:
         [
              {name:'1',value:'0'},
              {name:'6101',value:'北京市'},
              {name:'6102',value:'天津市'},
              {name:'6103',value:'上海市'},
              {name:'6104',value:'重庆市'},
              {name:'6105',value:'渭南市'},
              {name:'6106',value:'延安市'},
              {name:'6107',value:'汉中市'},
              {name:'6108',value:'榆林市'},
              {name:'6109',value:'安康市'},
              {name:'6110',value:'商洛市'}
         ]
    }";

    这里以jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。

    1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。
    这种方式也适合以普通javascipt方式获取json对象,以下举例说明:
    var dataObj=eval("("+data+")");//转换为json对象
    alert(dataObj.root.length);//输出root的子对象数量
    $.each(dataObj.root,fucntion(idx,item){
         if(idx==0){
              return true;
         }
         //输出每个root子对象的名称和值
         alert("name:"+item.name+",value:"+item.value);
    })

    注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。

    2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法 获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可。
    这里以$.getJSON方法为 例说明数据处理方法:
    $.getJSON("http://www.kaiyuanba.cn/",{param:"gaoyusi"},function(data){
         //此处返回的data已经是json对象
         //以下其他操作同第一种情况
         $.each(data.root,function(idx,item){
              if(idx==0){
                   return true;//同countinue,返回false同break
               }
              alert("name:"+item.name+",value:"+item.value);

         });
    });

    这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。

    网友留言/评论

    我要留言/评论

    相关文章

    在线检查网页浏览器的兼容性:BrowserShots.org 是一个很不错的在线服务,它主要帮助你检查一下你所设计网站是否兼容所有的浏览器。其目前支持四个操作系统:Linux, Windows, MacOS和BSD。浏览器支持的就多了:包括MSIE,Firefox,Chrome,Safari,Opera,Dillo,SeaMonkey,Navigator等等浏览器的不同版本。
    Web开发中需要了解的东西:在StackExchange上有人问了这样一个问题:What should every programmer know about web development?(关于Web开发,什么是所有程序员需要知道的?)里面给出的答案非常不错,所以,我翻译转载过来。 顺便说一下,StackExchange真是非常好,大家可以对同一个答案做贡献和修订,看看这个问题的修订过程你就知道了——专业的问答网站应该怎么去做。这就是我在这篇文章中也说过真正的用户体验是什么样的。
    关于Android应用开发优化的十条建议:随着移动平台的发展和其应用的不断改善,质量成为决定成败的关键。用户要求他们选择安装的应用响应快、性能好,如果某个应用不能提供卓越的功能和稳定的用户体验,那这样的应用注定会被很快卸载。
    关于Wordpress搜索引擎优化的一些技巧分享:很多人都喜欢把什么都往博客里面扔,汽车,电影,音乐,等等等。当然,这样的做法并没有错。但是,搜索引擎是很笨的,你的主题太多太杂,搜索引擎就不知道你的博客是关于什么的。同时,读者对这种形式也会感到疑惑。
    在Android手机上快速制作指南针:本文介绍一下用Rexsee制作的指南针,方便简单,纯页面实现哦,具体内容如下。
    对于PKI(公钥基础结构)及证书服务的理解:对于PKI及证书服务的这些概念,相信初学者会有许多迷惑的地方,那是因为其中的某些关键概念没有理解清楚,我力争以通俗易懂的方式给初学者一些启示。
    数据分析之 - DAU,MAU,及DAU/MAU专业名词解释:最近看到FaceBook上的social game分析报表,发现一些未知专业名词,比如DAU(或者dau)以及MAU(mau)这两个缩写是什么?其含义代表什么呢?分析这两个指数对我们又有什么帮助呢?
    Twitter Api文档 - 中文翻译:Twitter最近甚火,风靡全球,就连奥巴马竞选都派上了用场,可见其威力之巨大,现把twitter api文档翻译为中文,供各位爱好者使用!