我收到的JSON对象如下所示:
[{"foo1":"bar1", "foo2":"bar2", "problemkey": "problemvalue"}]
Run Code Online (Sandbox Code Playgroud)
我试图测试的是存在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");
}
Run Code Online (Sandbox Code Playgroud)
我期望其中一行打印"无dps键"因为{"dps":{}}
,但无论出于何种原因,它都不是.我正在使用org.json
.jar文件是org.json-20120521.jar
.
dje*_*lin 34
如果你对哈克没关系 -
obj.toString().equals("{}");
Run Code Online (Sandbox Code Playgroud)
序列化对象是昂贵的,而且对于大型对象也是如此,但是理解JSON作为字符串透明是很好的,因此查看字符串表示是您可以随时解决问题的方法.
如果是空数组:
.size() == 0
Run Code Online (Sandbox Code Playgroud)
如果是空对象:
.length() == 0
Run Code Online (Sandbox Code Playgroud)
JSON表示法{}表示空对象,表示没有成员的对象.这与null不同.当你试图将它与字符串"{}"进行比较时,它都不是字符串.我不知道你使用的是哪个json库,但是尝试寻找类似的方法:
isEmptyObject()
Run Code Online (Sandbox Code Playgroud)
尝试:
if (record.has("problemkey") && !record.isNull("problemkey")) {
// Do something with object.
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
133326 次 |
最近记录: |