php中json

来源:互联网 发布:五笔拆字软件 编辑:程序博客网 时间:2024/06/04 22:41

现在的各种接口,各种移动端开发都是通过json来返回或者调用数据,甚至有种说法是json正要逐步取代xml的位置。那么json到底是什么呢?其实就是一种数据格式而已,只不过主要用途是在数据的交互上而已。php提供了json_encode()和json_decode()两个函数,前者用于编码,后者用于解码。

先来说说json_encode(),主要是将数组和对象,转换成json格式。

$arr =array("one","two","threee");

echo json_encode($arr);         //结果是["one","two","threee"]

 

$arr1 =array('1'=>"one","2"=>"two","3"=>"three");

echo json_encode($arr1);       // 结果是{"1":"one","2":"two","3":"three"}

由于js不支持关联数组,所以将索引数组转换成数组格式,而将关联数组转换成对象格式。

 

 

Json_decode()用于将json对象转换成数组或者对象:

$arr1 = array('1'=>"one","2"=>"two","3"=>"three");

  $arr =json_encode($arr1);        //{"1":"one","2":"two","3":"three"}

  var_dump(json_decode($arr)) ;   //object(stdClass)#3 (3) {["1"]=> string(3) "one" ["2"]=> string(3)"two" ["3"]=>string(5) "three" }

通常情况下,json_decode()总是返回一个PHP对象,而不是数组。如果想要生成php关联数组,就需要再json_decode(param1,param2),param2的参数就要设置为true了。另外,json格式中的参数必须用双引号,比如,$json = {“one”=>”onetwoghr”},one必须要用双引号,如果用单引号或者不加引号都会报错,经过json_decode()解析后会返回null对象。

另外,json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null。


0 0