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