UtilJSON.java
2.77 KB
1
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package com.taover.util;
import java.util.Iterator;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class UtilJSON {
public static boolean isJsonNull(Object data){
if(data == null){
return true;
}
if(!(data instanceof String) && data.toString().equals("null")){
return true;
}
if(data instanceof JSONObject && ((JSONObject) data).isNullObject()){
return true;
}
return false;
}
public static void removeJsonNull(JSONObject data){
if(data == null || data.isNullObject()){
return;
}
Iterator<String> keyIter = data.keys();
while(keyIter.hasNext()){
String keyItem = keyIter.next();
Object value = data.get(keyItem);
if(isJsonNull(value)) {
data.remove(keyItem);
continue;
}
if(value instanceof JSONObject){
removeJsonNull((JSONObject)value);
}else if(value instanceof JSONArray){
removeJsonNull((JSONArray)value);
}
}
}
public static void removeJsonNull(JSONArray dataArr){
if(dataArr == null){
return;
}
for(int i=0; i<dataArr.size(); ++i){
Object dataItem = dataArr.get(i);
if(isJsonNull(dataItem)){
dataArr.remove(i);
--i;
continue;
}
if(dataItem instanceof JSONObject){
removeJsonNull((JSONObject)dataItem);
}else if(dataItem instanceof JSONArray){
removeJsonNull((JSONArray)dataItem);
}
}
}
public static void replaceJsonNull(JSONObject data, Object target){
if(data == null || data.isNullObject()){
return;
}
Iterator<String> keyIter = data.keys();
while(keyIter.hasNext()){
String keyItem = keyIter.next();
Object value = data.get(keyItem);
if(isJsonNull(value)) {
data.put(keyItem, target);
continue;
}
if(value instanceof JSONObject){
replaceJsonNull((JSONObject)value, target);
}else if(value instanceof JSONArray){
replaceJsonNull((JSONArray)value, target);
}
}
}
public static void replaceJsonNull(JSONArray dataArr, Object target){
if(dataArr == null){
return;
}
for(int i=0; i<dataArr.size(); ++i){
Object dataItem = dataArr.get(i);
if(isJsonNull(dataItem)){
dataArr.remove(i);
--i;
continue;
}
if(dataItem instanceof JSONObject){
replaceJsonNull((JSONObject)dataItem, target);
}else if(dataItem instanceof JSONArray){
replaceJsonNull((JSONArray)dataItem, target);
}
}
}
public static void main(String[] args){
JSONObject data = JSONObject.fromObject("{\"message\":\"文字解析成功\",\"status\":true,\"statusCode\":\"null\",\"result\":{\"items\":[{\"district\":\"隆化县\",\"city\":\"承德市\",\"province\":\"河北省\",\"phone\":\"13621051230\",\"name\":{\"first_name\":\"wang\",\"second_name\":\"bin\",\"full_name\":null},\"address\":\"东阿超村\"}]}}");
removeJsonNull(data);
System.out.println(data.toString());
}
}