JSONObject、JSONArray 非空判断

JSONObject、JSONArray 非空判断
彼岸的風JSONObject、JSONArray 非空判断,这么写的好处是 null.isEmpty() 和 null.size() 会报空指针异常,添加上 || 或 && ,程序就会走不到这一步,所以下面的公式不会报错。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17//JSONObject空判断
if (jsonObj == null || jsonObj.isEmpty()) {
System.out.println("jsonObj为空");
}
//JSONObject非空判断
if (jsonObj != null && !jsonObj.isEmpty()) {
System.out.println("jsonObj为非空");
}
//JSONArray空判断
if (jsonArray == null || jsonArray.size() == 0) {
System.out.println("jsonArray为空");
}
//JSONArray非空判断
if (jsonArray != null && jsonArray.size() > 0) {
System.out.println("jsonArray为空");
}实际开发中对JSON数据操作时,JSONObject / JSONArray 如果为空,在取值 getJSONObject() / getJSONArray() 会报错,这时就需要先进行判断。
注意:如果给在下面实例中16行代码只写成if (clutterForm.size() > 0)进行判断,运行后则会报NullPointerException1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27public static void main(String[] args) {
String json1 = "{\"code\":200,\"msg\":null,\"data\":{\"basicForm\":[{\"formType\":\"1\",\"formVersion\":\"70\"}],\"clutterForm\":\"\"}}";
String json2 = "{\"code\":200,\"data\":{\"basicForm\":[{\"formType\":\"1\",\"formVersion\":\"66\"}],\"clutterForm\":[{\"pcJson\":{\"gutter\":0,\"column\":[{\"readonly\":true,\"prop\":\"123\"}]}}]}}";
JSONObject jsonObject = null;
JSONArray columnEvery = null;
List<String> list = new ArrayList<>();
list.add(json1);
list.add(json2);
for (String json : list) {
jsonObject = JSON.parseObject(json);
if (jsonObject.containsKey("data") && jsonObject.getJSONObject("data").containsKey("clutterForm")) {
com.alibaba.fastjson.JSONArray clutterForm = jsonObject.getJSONArray("clutterForm");
if (clutterForm != null && clutterForm.size() > 0) {
com.alibaba.fastjson.JSONObject pcJson = clutterForm.getJSONObject(0).getJSONObject("pcJson");
if (pcJson.containsKey("column")) {
com.alibaba.fastjson.JSONArray column = pcJson.getJSONArray("column");
if (columnEvery == null) {
columnEvery = column;
}
}
}
}
}
}
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果