Controller
package sdcncsi.ict.customized.aaaJSONjx; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import sdcncsi.ict.util.RequestUtil; import javax.servlet.http.HttpServletRequest; /** * @Description: Java 取 省 市 縣 三級json數據 * @Param: * @return: * @Author: wangxa * @Date: 9:29 2019/1/5 */ @Controller @RequestMapping("/JsonAnalysis/default.do") public class JsonAnalysisController { @RequestMapping(params = "method=JsonJXIn") public ModelAndView JsonJXIn(HttpServletRequest request) { JsonAnalysis jsonAnalysis = new JsonAnalysis(RequestUtil.getMap(request)); return new ModelAndView("jsonView", jsonAnalysis.JsonJXIn()); } }
service
package sdcncsi.ict.customized.aaaJSONjx; import net.sf.json.JSONObject; import org.json.JSONArray; import sdcncsi.ict.util.ZhsqBaseDao; import java.util.Iterator; import java.util.Map; /** * @Description: java 解析json文本 * @Param: * @return: * @Author: wangxa * @Date: 9:29 2019/1/5 */ public class JsonAnalysis extends ZhsqBaseDao {//繼承的類不用管,框架里的,Controller調service用 public JsonAnalysis(Map mapin) { super(mapin); } /** * @Description: Java 取 省 市 縣 三級json數據 * 每一級 打印控制台 * @Param: * @return: * @Author: wangxa * @Date: 9:25 2019/1/7 */ public Map JsonJXIn() { int count = 0; String data = map.get("data").toString();//接收前台的Key參數,是框架而定,把所有json數據當做value傳進后台 JSONObject jsonObject = JSONObject.fromObject(data);//把字符串轉化為json對象 // System.out.println("------1----->"+jsonObject.toString());//字符串json對象 Iterator<JSONArray> itr = jsonObject.keys(); while (itr.hasNext()) { String key = String.valueOf(itr.next());//得到Key String value = jsonObject.getString(key);//得到值 JSONObject JsList = (JSONObject) jsonObject.get(key); String shengName = JsList.get("name").toString(); System.err.print("名稱=" + shengName);//篩選出省級名稱 System.err.println(" " + key);//省級code JSONObject shichild = (JSONObject) JsList.get("child");//所有的市級 Iterator<JSONArray> itr_ = shichild.keys(); while (itr_.hasNext()) { String shiName = String.valueOf(itr_.next());//得到Key JSONObject shiObject = (JSONObject) shichild.get(shiName); System.err.print("市code= " + shiName);//篩選出市級名稱 System.err.println(" " + shiObject.get("name") + " " + key);//篩選出市級code+上級code JSONObject quchild = (JSONObject) shiObject.get("child");//所有的區級 (取區級的時候,有些市級的區沒有Key,會報錯取不出來,導致之后的都取不出來,先刪掉json數據!) Iterator<JSONArray> itr__ = quchild.keys(); while (itr__.hasNext()) { String qu = String.valueOf(itr__.next()); System.err.println("區code= " + qu + " " + quchild.get(qu) + " " + shiName);//篩選出區級code+上級code } } } return jjd.getData();//我這系統框架自帶的方法返回值,可以不用管,返回值不報錯就行。 } }
附帶鏈接:
文本文檔json數據(數據為17年初的)
https://pan.baidu.com/s/1uplQSG-EU3CJbe33frvINA
