-
在全國城市數據json格式的文本里篩選出幾個指定的key
-
部分json格式數據如下
{"sysCatPk": 459, "prntSysCatPk": null, "prntCd": "9100", "prntNmEn": "china", "prntNmCn": "中國", "cd": "9100.100", "nmEn": "beijingshi", "nmCn": "北京市", "methSysCatPk": 252, "methCd": "9100", "methNmEn": "china", "methNmCn": "中國", "desc": "", "viewSeq": "", "busSeq": "", "value": null, "level": 1, "childSysCatDtozList": [{ "sysCatPk": 460, "prntSysCatPk": 459, "prntCd": "9100.100", "prntNmEn": "beijingshi", "prntNmCn": "北京市", "cd": "9100.100.100", "nmEn": "beijingshi", "nmCn": "北京市", "methSysCatPk": 252, "methCd": "9100", "methNmEn": "china", "methNmCn": "中國", "desc": "", "viewSeq": "", "busSeq": "", "value": null, "level": 2, "childSysCatDtozList": [{ "sysCatPk": 461, "prntSysCatPk": 460, "prntCd": "9100.100.100", "prntNmEn": "beijingshi", "prntNmCn": "北京市", "cd": "9100.100.100.100", "nmEn": "dongchengqu", "nmCn": "東城區", "methSysCatPk": 252, "methCd": "9100", "methNmEn": "china", "methNmCn": "中國", "desc": "", "viewSeq": "", "busSeq": "", "value": null, "level": 3, "childSysCatDtozList": [], "top": false, "leaf": true }, { "sysCatPk": 462, "prntSysCatPk": 460, "prntCd": "9100.100.100", "prntNmEn": "beijingshi", "prntNmCn": "北京市", "cd": "9100.100.100.110", "nmEn": "xichengqu", "nmCn": "西城區", "methSysCatPk": 252, "methCd": "9100", "methNmEn": "china", "methNmCn": "中國", "desc": "", "viewSeq": "", "busSeq": "", "value": null, "level": 3, "childSysCatDtozList": [], "top": false, "leaf": true }, { "sysCatPk": 463, "prntSysCatPk": 460, "prntCd": "9100.100.100", "prntNmEn": "beijingshi", "prntNmCn": "北京市", "cd": "9100.100.100.120", "nmEn": "chongwenqu", "nmCn": "崇文區", "methSysCatPk": 252, "methCd": "9100", "methNmEn": "china", "methNmCn": "中國", "desc": "", "viewSeq": "", "busSeq": "", "value": null, "level": 3, "childSysCatDtozList": [], "top": false, "leaf": true }], "top": false, "leaf": false }], "top": true, "leaf": false }
-
需要的json格式如下,只選取三個字段
[{"sysCatPk":"459","nmCn":"北京市","childSysCatDtozList": [{"sysCatPk":"460","nmCn":"北京市","childSysCatDtozList": [{"sysCatPk":"461","childSysCatDtozList":[],"nmCn":"東城區"}, {"sysCatPk":"462","childSysCatDtozList":[],"nmCn":"西城區"}, {"sysCatPk":"463","childSysCatDtozList":[],"nmCn":"崇文區"}, {"sysCatPk":"464","childSysCatDtozList":[],"nmCn":"宣武區"}, {"sysCatPk":"465","childSysCatDtozList":[],"nmCn":"朝陽區"}, {"sysCatPk":"466","childSysCatDtozList":[],"nmCn":"豐台區"}, {"sysCatPk":"467","childSysCatDtozList":[],"nmCn":"石景山區"}, {"sysCatPk":"468","childSysCatDtozList":[],"nmCn":"海淀區"}, {"sysCatPk":"469","childSysCatDtozList":[],"nmCn":"門頭溝區"}, {"sysCatPk":"470","childSysCatDtozList":[],"nmCn":"房山區"}, {"sysCatPk":"471","childSysCatDtozList":[],"nmCn":"通州區"}, {"sysCatPk":"472","childSysCatDtozList":[],"nmCn":"順義區"}, {"sysCatPk":"473","childSysCatDtozList":[],"nmCn":"昌平區"}, {"sysCatPk":"474","childSysCatDtozList":[],"nmCn":"大興區"}, {"sysCatPk":"475","childSysCatDtozList":[],"nmCn":"平谷區"}, {"sysCatPk":"476","childSysCatDtozList":[],"nmCn":"懷柔區"}, {"sysCatPk":"477","childSysCatDtozList":[],"nmCn":"密雲縣"}, {"sysCatPk":"478","childSysCatDtozList":[],"nmCn":"延慶縣"} }] }]
-
實現方法:
- 創建一個實體類
@Data public class City { private String sysCatPk; private String nmCn; private List<City> childSysCatDtozList; }
- 從文本中讀取json數據
public class TextRead { public static String readFileContent(String fileName) { File file = new File(fileName); BufferedReader reader = null; StringBuffer sbf = new StringBuffer(); try { reader = new BufferedReader(new FileReader(file)); String tempStr; while ((tempStr = reader.readLine()) != null) { sbf.append(tempStr); } reader.close(); return sbf.toString(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { e1.printStackTrace(); } } } return sbf.toString(); } }
- 轉換
public static void main(String[] asg) throws IOException { String str = TextRead.readFileContent("C:\\Users\\mengzhao\\Desktop\\全國城市數據json格式.txt"); JSONArray array = JSONArray.parseArray(str); List<City> cities = array.toJavaList(City.class); Object json = JSONArray.toJSON(cities); File file = new File("C:\\Users\\mengzhao\\Desktop\\全國城市數據json格式1.txt"); Writer out = new FileWriter(file); out.write(json.toString()); out.close(); }