JSON

jquery 解析json与json 例子

字号+ 作者:H5之家 来源:H5之家 2015-09-29 11:17 我要评论( )

jquery 解析json与json 例子:jquery处理网页特效on的方法 jquery处理json的方法是直接eval,给一个变量,但是,今天看到其源代码,证...

jquery处理网页特效on的方法

jquery处理json的方法是直接eval,给一个变量,但是,今天看到其源代码,证明我的想法彻底错了。

  它先判定有没有window.json.parse这个方法,如果有,直接用这个方法解析,如果没有,会new一个匿名函数,里面的内容,就是返回json的执行结果。

  我试了一下,window.json这个对象,在firefox/webkit的浏览器中存在,但ie6-ie8都没有。

  另外,如果大家需要解析json字符串,可以直接使用jquery的parsejson方法,虽然这个方法在手册中没有出现,例:

var json_str = '{"a":1, "b":2}';

 var data = $.parsejson(json_str);
 alert(data.a)

更详细的json处理方法与原理

jquery异步获取的数据类型——网页特效on对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。
1.对于服务器返回的网页特效on字符串,如果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("",{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);
}); 
});

jquery处理json数据实例

<title>jquery获取json数据演示页面</title>
    <script type="text/网页特效" src="js/jquery-1.2.1.pack.js"></script>
    <script type="text/javascript">
    function getdata(){
    $("#list").html("");//清空列表中的数据
   //发送ajax请求
    $.getjson(
    "jsondata.ashx",//产生json数据的服务端页面
    {name:"test",age:20},//向服务器发出的查询字符串(此参数可选)
   //对返回的json数据进行处理,本例以列表的形式呈现
    function(json){
   //循环取json中的数据,并呈现在列表中
    $.each(json,function(i){
    $("#list").append("<li>name:"+json[i].name+"&nbsp; age:"+json[i].age+"</li>")
    })
    })
    }
    </script>

asp教程.net

:<%@ webhandler language="c#" class="jsondata" %>

using system;
using system.web;

public class jsondata : ihttphandler {
        public void processrequest (httpcontext context) {
        context.response.contenttype = "text/plain";
        string data = "[{name:\"ants\",age:24},{name:\"lele\",age:23}]";//构建的json数据
       //下面两句是用来测试前台向此页面发出的查询字符
        string querystrname = context.request.querystring.getvalues("name")[0];//取查询字符串中namer的值
        string querystage = context.request.querystring.getvalues("age")[0];//取查询字符串中age的值
        
        context.response.write(data);
    }
   public bool isreusable {
        get {
            return false;
        }
    }

}

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • php CI 实战教程:[5]用curl获取json并解析

    php CI 实战教程:[5]用curl获取json并解析

    2016-02-26 17:00

  •  JSON入门级学习总结-JSON数据结构

    JSON入门级学习总结-JSON数据结构

    2016-02-25 11:05

  • Android解析Json速度最快的库:json

    Android解析Json速度最快的库:json

    2016-02-13 18:00

  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

网友点评
u