前提原因:前端需要没有null值的json
解决方案:用枚举写个单例模式的方法,把json中的null替换成空字符串""
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.Iterator;
public enum JsonTool {
/**
* 用枚举设计单例模式!
*/
INSTANCE;
/**
* 将json对象中包含的null和JSONNull属性修改成""
*/
public JSONObject filterNull(JSONObject jsonObj) {
Iterator<String> it = jsonObj.keySet().iterator();
Object obj;
String key;
while (it.hasNext()) {
key = it.next();
obj = jsonObj.get(key);
if (obj instanceof JSONObject) {
filterNull((JSONObject) obj);
}
if (obj instanceof JSONArray) {
JSONArray objArr = (JSONArray) obj;
for (int i = 0; i < objArr.size(); i++) {
filterNull(objArr.getJSONObject(i));
}
}
if (obj == null) {
jsonObj.put(key, "");
}
}
return jsonObj;
}
}
调用方法:
JsonTool.INSTANCE.filterNull(json)

本文介绍了一种使用Java枚举单例模式去除JSON对象中null值的方法,通过递归遍历JSON对象和数组,将null替换为空字符串,确保前端接收的数据完整无误。
845

被折叠的 条评论
为什么被折叠?



