关于jQuery1.4.2的json格式问题

本文介绍了在使用jQuery处理JSON数据时遇到的问题及解决方案。详细解释了jQuery 1.4版本开始对JSON数据格式的严格要求,并给出了正确的JSON格式示例。

最近由于项目需要学习了jquery时遇到了关于json格式问题,今天写出来希望能帮助初学者少走弯路。

$.ajax({
    url : '<%=basePath%>task.do?method=loadTaskList',
    dataType : 'json',    
    success : function(obj){     
      json=obj.data; 
     $("#show").attr("border",1);
     $.each(json,function(i){
      $("#show").append("<tr><td><input type='checkbox' value="+json[i].taskId+"/></><td>"+json[i].taskTitle+"</td><td>"+json[i].taskData+"<td></tr>");
     });     
    },
    error : function(){
     alert('失败!');
    }
    
   }); 

服务器返回的数据格式为:{data:[{id:"1",name:"sss"},{id:"2",name:'ccc'}]}

这段代码在jQuery为1.4 的版本时会一直调用error函数,而把jQuery库换为1.3.1后执行成功!

在网上找了些资料才发现原来1.4.2这个版本中jqurey把JSON的解析由原来的eval改为极其严格的$.parseJSON()来处理了。

http://api.jquery.com/jQuery.ajax/ 官方的说明文档中有说明,如下:

"json": Evaluates the response as JSON and returns a JavaScript object. In jQuery 1.4 the JSON data is parsed in a strict manner; any malformed JSON is rejected and a parse error is thrown. (See json.org for more information on proper JSON formatting.)

意思是说 jQuery 1.4对服务端返回的JSON 数据要求比较严格,必须严格按照JSON的标准来了。

那什么样的格式才是JSON的标准格式呢?

http://api.jquery.com/jQuery.parseJSON/

从文档上来看

{test: 1} (test does not have double quotes around it).  //test两边必须有双引号{"test":1} {'test': 1} ('test' is using single quotes instead of double quotes). //test两边的引号不能为单引号,必须为是双引号

由此可见JSON的标准格式:

{"test":1}

{"test":"aa"}

{"test":["black":"cc","id":1]}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值