如何检查PHP中的JSON对象是否为空?
我正在使用PHP读取JSON数据,并且该数据包含空对象(如)。所以问题是,我必须以不同的方式处理对象为空的情况,但我找不到足够好的方法进行检查。 看起来太可怕了,效率很低。有没有好的方法来做检查?{}
empty(get_object_vars(object))
我正在使用PHP读取JSON数据,并且该数据包含空对象(如)。所以问题是,我必须以不同的方式处理对象为空的情况,但我找不到足够好的方法进行检查。 看起来太可怕了,效率很低。有没有好的方法来做检查?{}
empty(get_object_vars(object))
您正在取消序列化多少个对象?除非或强制转换为阵列被证明是一个主要的减速/瓶颈,否则我不会担心它 - Greg的解决方案很好。empty(get_object_vars($object))
不过,我建议在解码JSON数据时使用该标志:$associative
json_decode($data, true)
这会将 JSON 对象解码为普通的旧 PHP 数组,而不是对象。然后,您可以使用 来检查空对象,并使用 并创建用户定义类的对象,而不是使用 ,从长远来看,这可能是一个好主意。stdClass
empty()
stdClass
你可以把它强制到一个数组(不幸的是,你不能在调用:empty()
$x = (array)$obj;
if (empty($x))
...
或者转换为数组并:count()
if (count((array)$obj))
...