如何在 Java 中测试 JSON 集合对象是否为空

2022-08-31 12:57:09

我收到的 JSON 集合对象如下所示:

[{"foo1":"bar1", "foo2":"bar2", "problemkey": "problemvalue"}]

我试图测试的是.如果返回一个JSON对象,我很高兴。否则,它将返回为 。如何测试这种情况?我已经尝试了几件事,但无济于事。problemvalueproblemvalue{}

这是我到目前为止尝试过的:

//      if (obj.get("dps") == null) {  //didn't work
//      if (obj.get("dps").equals("{}")) {  //didn't work
if (obj.isNull("dps")) {  //didn't work
    System.out.println("No dps key");
}

我期望其中一行打印“No dps key”,因为,但无论出于何种原因,它都不是。我正在使用 .jar 文件是 。{"dps":{}}org.jsonorg.json-20120521.jar


答案 1
obj.length() == 0

是我会做的。


答案 2

如果你对黑客攻击没问题 -

obj.toString().equals("{}");

序列化对象的成本很高,对于大型对象来说更是如此,但最好了解 JSON 作为字符串是透明的,因此查看字符串表示形式始终可以解决问题。