zixueit

在php生成json数据(json_decode())

参数为索引数组生成的数据格式为js数组

$fruit = array(\'apple\',\'banana\',\'pear\',\'orange\');
$fruit_jn = json_encode($fruit);    //[\'apple\',\'banana\',\'pear\',\'orange\']

  

参数为关联数组生成的数据是json对象格式

$fruit = array(\'a\'=>\'apple\',\'b\'=>\'banana\',\'c\'=>\'pear\',\'d\'=>\'orange\');
$fruit_jn = json_encode($fruit);//{"a":"apple","b":"banana","c":"pear","d":"orange"}

  

参数为对象生成的数据也是json对象格式,会忽略对象的方法

$animal = array(\'a\'=>array(\'aa\'=>\'cat\',\'bb\'=>\'pig\'),"c"=>array("cc"=>\'chicken\',"dd"=>\'duck\'));
echo json_encode($animal);    //{"a":{"aa":"cat","bb":"pig"},"c":{"cc":"chicken","dd":"duck"}}

  

处理json数据

  var info = xhr.responseText;

此时实际上json对象只是一个字符串,因为json对象是作为字符串返回的,所以我们并不能很方便的处理,那么我们如何把转为实实在在的js对象呢?这里我们要用到eval()函数。

  eval(\'var info = \'+info);

现在info就是实实在在的json对象了,那么我们可以很轻松的将数据显示在想要的部分。

var xhr = function(){
	var xhr = null;
	if(window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		xhr = new ActiveXObject(\'Microsoft.XMLHTTP\');
	}
	return xhr;
}

xhr.onreadystatechange = function(){
    if(xhr.readyState==4 && xhr.status==200){
        
        var info = xhr.responseText;
         
        //info是以字符串形式给我们返回string——\'{"name":"apple5s","price":"4999","number":"24","weight":"105"}\'
        
        //eval(\'var a= {"name":"apple5s","price":"4999"}\');
        eval("var info_jn="+info);    //让info字符串内容当作表达式运行
        var rst = document.getElementById(\'result\');
        rst.innerHTML += "名字:"+info_jn.name;
        rst.innerHTML += " 价格:"+info_jn.price;
        rst.innerHTML += " 重量:"+info_jn.weight;
        rst.innerHTML += " 数量:"+info_jn.number;
    }
}

xhr.open("get",\'./02.php\');
xhr.send(null);

  

分类:

技术点:

相关文章: