Java取省市区三级json数据
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
内容仅供参考,并非百分百解决您的问题。