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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM