json 解析

当使用ajax请求一个php文件,返回结果为json格式,同时需要js解析后,显示在html页面中。

假如返回格式为:

[{"code":"001","name":"\u4e2d\u56fd","addr":"Address 11","col4":"col4 data"},{"code":"002","name":"Name 2","addr":"Address 12","col4":"col4 data"},{"code":"003","name":"\u4e2d\u56fd3","addr":"Address 13","col4":"col4 data"}]

php查询结果为二维数组,然后使用json_encode()函数,处理为json格式,返回给客户端.

json的解析方法共有两种:eval() 和 JSON.parse(),具体使用见下:

<script language="javascript">

$(document).ready(function(){


 $("#click").click(function(){

//使用get方式发出请求,回去返回结果
  $.get('json.php',function(data){


   //alert(data.length);
   //var result=eval("(" +data+ ")");  //使用eval解析


   var result=JSON.parse(data);//使用parse解析


   for(var a in result){  //循环遍历得到每一个的值,此处也可以使用foreach


    document.write(result[a]['code']+'----'+result[a]['name']+'<br>');
   }
  });
 });
});
</script>
<div id="click">click</div>

《高性能Javascript》一书即指出:
警告:关于JSON和eval需要注意的是:在代码中使用eval是很危险的,特别是用它执行第三方的JSON数据(其中可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身。该方法可以捕捉JSON中的语法错误,并允许你传入一个函数,用来过滤或转换解析结果。如果此方法以备Firfox 3.5 、IE8 及 Safari 4 原生支持。大多数javascript类库包含的JSON解析代码会直接调用原生版本,如果没有原生支持的话,会调用一个略微不那么强大的非原生版本来处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值