JSONObject에서 null 값을 빈 문자열로 바꾸는 방법

2433 단어
인터넷에서 여러 가지 처리 방법을 찾았지만 모두 성공하지 못했다. 차라리 다른 사람이 쓴 것을 찾았다. (그에게 매우 고맙다. 그가 누군지 모르겠지만 코드를 붙여서 공유한다) 다음은 내가 고쳤다!import net.sf.json.JSONNull; import org.json.JSONArray; import org.json.JSONObject; import java.util.Iterator; public class TestJSON extends JsonUtil { public static void main(String[] args) { String str = "{body:{title:[{id:100,name:lisan,age:null,index:[{title: ,age:null,zs: }]},{id:1001,age:null,name:lisan1,index:[{title: 1,age:null,zs: 1}]}]}}}"; JSONObject object = new JSONObject(str); System.out.println(object); JSONObject filterNull = filterNull(object); System.out.println(filterNull); } /** * json null JSONNull "" * * @param jsonObj */ public static JSONObject filterNull(JSONObject jsonObj) { Iterator it = jsonObj.keys(); Object obj = null; String key = null; 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.length(); i++) { filterNull(objArr.getJSONObject(i)); } } if (obj == null || obj instanceof JSONNull) { jsonObj.put(key, ""); } if (obj.equals(null)) { jsonObj.put(key, ""); } } return jsonObj; } } 인쇄:
"body": {"title": [{"name": "lisan", "index": [{"zs": "춥다", "title": "옷 입기", "age": null}, "id": 100, "age": null}, {"name": "lisan1", "index": ["zs": "춥다 1", "title": "옷 입기 1", "age": nullid} ","100}
"body": {"title": [{"name": "lisan", "index": [{"zs": "춥다", "title": "옷 입기", "age": "}", "아이디": 100, "age": "}", {"name": "lisan1", "index": ["zs": "춥다 1", "title": "옷 입기 1", "age": "}", "id": "100}"

좋은 웹페이지 즐겨찾기