如何检查PHP中的JSON对象是否为空?

2022-08-30 17:30:39

我正在使用PHP读取JSON数据,并且该数据包含空对象(如)。所以问题是,我必须以不同的方式处理对象为空的情况,但我找不到足够好的方法进行检查。 看起来太可怕了,效率很低。有没有好的方法来做检查?{}empty(get_object_vars(object))


答案 1

您正在取消序列化多少个对象?除非或强制转换为阵列被证明是一个主要的减速/瓶颈,否则我不会担心它 - Greg的解决方案很好。empty(get_object_vars($object))

不过,我建议在解码JSON数据时使用该标志:$associative

json_decode($data, true)

这会将 JSON 对象解码为普通的旧 PHP 数组,而不是对象。然后,您可以使用 来检查空对象,并使用 并创建用户定义类的对象,而不是使用 ,从长远来看,这可能是一个好主意。stdClassempty()stdClass


答案 2

你可以把它强制到一个数组(不幸的是,你不能在调用:empty()

$x = (array)$obj;
if (empty($x))
    ...

或者转换为数组并:count()

if (count((array)$obj))
    ...

推荐