色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java json 去除空

李中冰1年前8瀏覽0評論

在Java開發中,我們經常需要處理JSON數據,然而JSON中有一些空的字段可能會影響我們的數據處理,因此我們需要去除這些空的字段,下面介紹如何使用Java去除JSON中的空字段。

public static JSONObject removeEmptyFields(JSONObject jsonObject) {
for (String key : new ArrayList<>(jsonObject.keySet())) {
Object value = jsonObject.get(key);
if (value instanceof JSONObject) {
removeEmptyFields((JSONObject) value);
if (((JSONObject) value).isEmpty()) {
jsonObject.remove(key);
}
continue;
}
if (value instanceof JSONArray) {
JSONArray array = (JSONArray) value;
for (int i = 0; i < array.size(); i++) {
Object el = array.get(i);
if (el instanceof JSONObject) {
removeEmptyFields((JSONObject) el);
}
}
if (((JSONArray) value).isEmpty()) {
jsonObject.remove(key);
}
continue;
}
if (value == null || value.toString().trim().length() == 0) {
jsonObject.remove(key);
}
}
return jsonObject;
}

以上代碼是一個遞歸方法,可以去除JSON中的空字段。

我們可以調用以上方法,使其能夠去除JSON字符串中的空字段。

String jsonStr = "{\"name\":\"Tom\",\"age\":null,\"address\":{\"province\":\"\",\"city\":\"Beijing\"}}";
JSONObject jsonObject = JSON.parseObject(jsonStr);
removeEmptyFields(jsonObject);
System.out.println(jsonObject.toJSONString());
// 得到的結果為:{"name":"Tom","address":{"city":"Beijing"}}

可以看到,執行后我們已經成功的去掉了JSON字符串中的空字段。