好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php json 格式如何转换

php json格式转换的方法:1、通过json_encode函数将php的array和object转换成json格式;2、通过json_decode函数将json文本转换为相应的PHP数据结构。

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑。

php json格式互转

php原生提供 json_encode($str)和json_decode($str)。

1.json_encode()

此函数是将php的array和object转换成json格式。

eg:array
  $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);  echo json_encode($arr);
result:{"a":1,"b":2,"c":3,"d":4,"e":5}
eg:object
  $obj->body = 'another post';
  $obj->id = 21;
result:  {    "body":"another post",
    "id":21,
  }

通常情况下,json_decode()总是返回一个PHP对象,而不是数组。 比如:

  $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
  var_dump(json_decode($json));

结果就是生成一个PHP对象:

  object(stdClass)#1 (5) {

    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)

  }

如果想要强制生成PHP关联数组,json_decode()需要加一个参数true :

  $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json),true);

结果就生成了一个关联数组:

  array(5) {

     ["a"] => int(1)
     ["b"] => int(2)
     ["c"] => int(3)
     ["d"] => int(4)
     ["e"] => int(5)

  }

五、json_decode()的常见错误

下面三种json写法都是错的,你能看出错在哪里吗?

  $bad_json = "{ 'bar': 'baz' }";

  $bad_json = '{ bar: "baz" }';

  $bad_json = '{ "bar": "baz", }';

对这三个字符串执行json_decode()都将返回null,并且报错。

第一个的错误是,json的分隔符(delimiter)只允许使用双引号,不能使用单引号。第二个的错误是, json名 值对的"名"(冒号左边的部分),任何情况下都 必须使用双引号 。第三个的错误是,最后一个值之后不能添加逗号(trailing comma)。
另外,json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null。

  var_dump(json_decode("Hello World")); //null

以上就是php json 格式如何转换的详细内容!

查看更多关于php json 格式如何转换的详细内容...

  阅读:54次