JSON PHP中,Json字符串反序列化成对象/数组的方法

今天小编就为大家分享一篇JSON PHP中,Json字符串反序列化成对象/数组的方法,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

如下所示:

  1. <?php
  2. //php反编码解析json信息
  3. //json_decode(json字符串);
  4. $city = array('shandong'=>'jinan','henan'=>'zhengzhou','hebei'=>'shijiazhuang');
  5. $jn_city = json_encode($city);
  6. //反编码json
  7. $fan_city = json_decode($jn_city,false);//第二个参数false则返回object类型,false可以默认不写
  8. var_dump($fan_city);//object(stdClass)#1 (3) { ["shandong"]=> string(5) "jinan" ["henan"]=> string(9) "zhengzhou" ["hebei"]=> string(12) "shijiazhuang" }
  9. echo "<br />";
  10. $fan_city = json_decode($jn_city,true);//第二个参数true则返回array类型
  11. var_dump($fan_city);//array(3) { ["shandong"]=> string(5) "jinan" ["henan"]=> string(9) "zhengzhou" ["hebei"]=> string(12) "shijiazhuang" }

手动写的JSON字符串一定要用单引号才能成功反序列化成对象/数组:

  1. <?php
  2. //json信息反编码
  3. //不同php版本,对“纯json字符串”解析存在问题
  4. //使用双引号定义的json字符串反编码操作变为null
  5. //$jn = "{'name':'tom','age':'20','addr':'beijing'}";
  6. //$fan_jn = json_decode($jn,true);
  7. //var_dump($fan_jn);//NULL
  8. //使用单引号定义的json字符串反编码操作会成功
  9. $jn = '{"name":"tom","age":"20","addr":"beijing"}';
  10. $fan_jn = json_decode($jn,true);
  11. var_dump($fan_jn);