在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字符串中的空字段。