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

posted @ 2019-01-07 09:47  雁书几封  阅读(6017)  评论(0编辑  收藏  举报