的JSON對象我收到這樣的容貌:如何測試是否JSON對象爲空在Java中
[{"foo1":"bar1", "foo2":"bar2", "problemkey": "problemvalue"}]
我試圖來測試是problemvalue
存在。如果problemvalue
返回一個JSON對象,我很高興。如果不是,它將返回爲{}
。我如何測試這種情況?我已經嘗試了幾件事情無濟於事。
這是我迄今爲止嘗試:
// 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");
}
我預計這些線路的一個打印「沒有DPS的關鍵」,因爲{"dps":{}}
,但無論出於何種原因,事實並非如此。我正在使用org.json
。該jar文件是org.json-20120521.jar
。
你爲什麼不只是'通信System.err.println(obj.get(」 DPS「))'? – djechlin
@djechlin,thx的建議。它返回「{}」,但由於某種原因,它並沒有達到我上面的第二條語句。 =(它不包含任何多餘的空格b/ci使用此行來確保System.out.println(「這是什麼dps是:」+ obj.get(「dps」)+「zzz」); – Classified
'equals()'方法可能不起作用,因爲當你將對象輸出到控制檯時,Java會在對象上調用'toString()'來生成值'「{}」'但是當你'重新調用'.equals(「{}」)',你正在比較一些可能不是String的'Object'到'String'。作爲一個解決方法,你可以這樣做:'obj.get(「dps 「).toString()。equals(」{}「)',但它最多隻是一個黑客解決方案 –