如何验证json[]数组不是空的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (14)

我想验证一下json[]the_array不是空的。对于正常数组,我可以检查:

the_array != '{}'

但是,对JSON[]不适用,如下所示:

select '{}'::json[] != '{}'
ERROR:  could not identify an equality operator for type json

我可以使用下面的检查:

array_length(the_array, 1) != null // yes, array_length on an
                                      empty array returns null

我担心的是array_length()将遍历整个数组以计数项目数,然后返回该计数。在我的例子中,我不需要数组的实际大小,我只需要知道它是否是空的。

所以,array_length()遍历整个数组?如果是,是否有更好的方法来检查json数组是否为空?

提问于
用户回答回答于

使用getJSONArray()并测试返回对象的长度。

my_array = mydata.getJSONArray("name");

if (my_array != null && my_array.length() > 0)
    # Do stuff

扫码关注云+社区

领取腾讯云代金券