php json_encode()函数返回对象和数组问题
程序员文章站
2022-06-24 08:26:45
php json_encode() 函数格式化数据时会根据不同的数组类型格式化不同类型的json数据 索引数组时 关联数组时 空数组 索引数组时生成的是数组类型数据,关联数组时生成的是对象类型的数据,空数组返回的是数组类型。但是当碰到同一个字段返回的数组可能是关联数组也可能是空数组时,就会在app端 ......
php json_encode() 函数格式化数据时会根据不同的数组类型格式化不同类型的json数据
索引数组时
<?php $arr = [1,2,3,4,5]; print_r(json_encode($arr)); //输出 [1,2,3,4,5]
关联数组时
<?php $arr = [ "name"=>"bob", "job"=>"it" ]; print_r(json_encode($arr)); //输出 {"name":"bob","job":"it"}
空数组
<?php $arr = []; print_r(json_encode($arr)); //输出 []
索引数组时生成的是数组类型数据,关联数组时生成的是对象类型的数据,空数组返回的是数组类型。但是当碰到同一个字段返回的数组可能是关联数组也可能是空数组时,就会在app端出现数据类型不一致的问题,解决方式有两种:
一,使用 json_encode的 json_force_object 模式
<?php $arr = []; print_r(json_encode($arr,json_force_object)); //输出 {}
但是这种存在一个问题,它会把所有的数据都以对象的方式返回,包括索引数组:
<?php $arr = [1,2,3,4,5,6]; print_r(json_encode($arr,json_force_object)); //输出 {"0":1,"1":2,"2":3,"3":4,"4":5,"5":6}
二,定义空数据时使用 arrayobject 定义而不适用 array() 或者 []
<?php $arr = new arrayobject(); print_r(json_encode($arr)); //输出 {}
到这里我们可以随意的控制返回的json数据中数据的类型啦!!!!
推荐阅读
-
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
-
php json_encode()函数返回对象和数组问题
-
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
-
php简单对象与数组的转换函数代码(php多层数组和对象的转换)_PHP教程
-
php函数:实现从二维数组对象返回一维数组_PHP教程
-
php函数:实现从二维数组对象返回一维数组
-
php简单对象与数组的转换函数代码(php多层数组和对象的转换)_PHP教程
-
php函数:实现从二维数组对象返回一维数组_PHP教程
-
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
-
火炬之光有多少层 php简单对象与数组的转换函数代码php多层数组和对象的转换