龙空技术网

javascript解析json字符串

寒笛过霜天 54

前言:

现时你们对“ajaxjsoneval”大体比较关心,咱们都想要学习一些“ajaxjsoneval”的相关资讯。那么小编也在网摘上收集了一些有关“ajaxjsoneval””的相关文章,希望姐妹们能喜欢,姐妹们一起来学习一下吧!

for...in语句解析

<script>var json={a: 12, b: 5};for(var i in json){alert(i+'='+json[i]);}</script>

eval() 函数可计算某个字符串, 并执行其中的的 JavaScript 代码。

服务器端脚本代码:

<?php$row=array('username'=>'lisi','password'=>'222222');echo json_encode($row);/*$data=array(array('name'=>'zhangsan','age'=>18),array('name'=>'lisi','age'=>30));echo json_encode($data);*/?>

var json=eval('('+value+')'); 主要是针对关联数组

返回:"{name:'zhangsan',age:18}"

访问方式:json.username+json.password

var json=eval(value); 主要是针对索引数组

返回:"[{name:'zhangsan',age:18},{name:'lisi',age:20}]"

访问方式:json[0].name+json[0].age

注意:索引数组的解析也可以采用 var json=eval(value);

<script language="javascript" src="public.js"></script><script>var xhr=createxhr(); //创建ajax对象, 代码见ajax | ajax封装GET和POSTxhr.open('post','demo05.php');xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.onreadystatechange=function(){if(xhr.readyState==4 && xhr.status==200){var value=xhr.responseText; //返回的是字符串//1)var json=eval('('+value+')'); //返回是json对象alert(json.username+json.password);//2)//var json=eval(value); //返回是json数组对象//alert(json[1].name+json[1].age);}};xhr.send(null);</script>

返回:"{name:’zhangsan’,age:18}"

解析格式:eval('('+value+')');

返回:"[{name:'zhangsan',age:18},{name:'lisi',age:20}]"

解析格式:eval(value);

也可以采用eval('('+value+')');

实例1:

<html><head><title>新建网页</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="description" content="" /><meta name="keywords" content="" /><script type="text/javascript">function f1(){//ajax去服务器获得json信息var xhr = new XMLHttpRequest();xhr.onreadystatechange = function(){if(xhr.readyState==4 && xhr.status==200){//alert(xhr.responseText);//字符串{"north":"wolf","helan":"pig","germany":"dog"}var info = eval('('+xhr.responseText+')');//也可写成:eval("var info="+xhr.responseText);document.write(info.north);document.write(info.helan);document.write(info.germany);}}xhr.open('get','03.php');xhr.send(null);}//javascript把一个字符串变为对象//var a = '{"north":"wolf","helan":"pig","germany":"dog"}';//eval(参数字符串)//eval("var obj="+a);//eval('var obj={"north":"wolf","helan":"pig","germany":"dog"}');//document.write(obj);//访问对象</script></head><body><h2>静态网站,javascript对json的接收处理</h2><input type="button" value="触发" onclick="f1()" /></body></html><?php//对外提供json信息header("Cache-Control:no-cache,must-revalidate");$animal = array('north'=>'wolf','helan'=>'pig','germany'=>'dog');echo json_encode($animal); //{"north":"wolf","helan":"pig","germany":"dog"}?>

在javascript解析{"north":"wolf","helan":"pig","germany":"dog"}

采用:var info = eval('('+xhr.responseText+')'); 语法

也可写成:eval("var info="+xhr.responseText);

实例2:

<html><head><title>新建网页</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="description" content="" /><meta name="keywords" content="" /><script type="text/javascript">function f1(){//ajax去服务器获得json信息var xhr = new XMLHttpRequest();xhr.onreadystatechange = function(){if(xhr.readyState==4 && xhr.status==200){//alert(xhr.responseText);//数组 ["wolf","pig","dog"]var info = eval(xhr.responseText);document.write(info[0]+info[1]+info[2]);}}xhr.open('get','03.php');xhr.send(null);}</script></head><body><h2>静态网站,javascript对json的接收处理</h2><input type="button" value="触发" onclick="f1()" /></body></html><?php//对外提供json信息header("Cache-Control:no-cache,must-revalidate");$animal = array('wolf','pig','dog');echo json_encode($animal); //["wolf","pig","dog"]?>

在javascript解析["wolf","pig","dog"]时

采用:var info = eval(xhr.responseText);语法

实例3:

<html><head><title>新建网页</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="description" content="" /><meta name="keywords" content="" /><script type="text/javascript">function f1(){//ajax去服务器获得json信息var xhr = new XMLHttpRequest();xhr.onreadystatechange = function(){if(xhr.readyState==4 && xhr.status==200){var s = "";//alert(xhr.responseText);//数组对象[{"id":1,"name":"xutao","sex":"\u7537","age":30},...]var info = eval(xhr.responseText);for(var i=0;i<info.length;i++){s += info[i].id + "--" + info[i].name + "--" + info[i].sex + "--" + info[i].age +"<br />";}document.getElementById("user").innerHTML = s;}}xhr.open('get','info.php');xhr.send(null);}</script></head><body><h2>静态网站,javascript对json的接收处理</h2><input type="button" value="触发" onclick="f1()" /><div id="user"></div></body></html><?php$info = array(array("id"=>1,"name"=>"zhangsan","sex"=>"男","age"=>30),array("id"=>2,"name"=>"lisi","sex"=>"女","age"=>27),array("id"=>3,"name"=>"wangwu","sex"=>"男","age"=>6));echo json_encode($info);/* [{"id":1,"name":"zhangsan","sex":"\u7537","age":30},{"id":2,"name":"lisi","sex":"\u5973","age":27},{"id":3,"name":"wuwang","sex":"\u7537","age":6}] */?>

在javascript解析[{"id":1,"name":"zhangsan","sex":"\u7537","age":30},

{"id":2,"name":"lisi","sex":"\u5973","age":27},

{"id":3,"name":"wuwang","sex":"\u7537","age":6}]时

采用:var info = eval(xhr.responseText);语法

从数据库读取出来的二维数组,通过json_encode()编码后, 在javascript进行解析时也是采用上述语法。

标签: #ajaxjsoneval #ajax里怎么解析json #jsjson格式的字符串