JAVA后台拼接json map类型,MAP类型中的VALUE对应List

JAVA代码

public ModelAndView queryAddress(HttpServletResponse response,HttpServletRequest request){
        List<String> ls1 = adressService.querySheng();
        Map<String, List<String>> mapshi = adressService.queryShi();
        Map<String, List<String>> mapqu = adressService.queryQu();

        Map<String, String> mapshiresult = mapshiresult = new HashMap<String, String>();;
        Map<String, String> mapquresult = new HashMap<String, String>();

        //拼接市的json格式
        StringBuffer json = null;
        Set<String> set = mapshi.keySet();
        Iterator<String> ir = set.iterator();
        while(ir.hasNext()){
            json = new StringBuffer();
            json.append("[");
            String str = ir.next().toString();
            for(int i = 0; i<mapshi.get(str).size();i++){
                json.append("\"");
                json.append(mapshi.get(str).get(i));
                json.append("\"");
                if(i < mapshi.get(str).size()-1){
                    json.append(",");
                }
            }
            json.append("]");
            mapshiresult.put(str, String.valueOf(json));
        }

        StringBuffer jsonshi = new StringBuffer();;
        Set<String> setshi = mapshiresult.keySet();
        Iterator<String> irshi = setshi.iterator();
        int i = 0;
        jsonshi.append("{");
        while(irshi.hasNext()){
            i++;
            String str = irshi.next().toString();
            jsonshi.append("\""+str+"\":"+mapshiresult.get(str));
            if(i<mapshiresult.size()){
                jsonshi.append(",");
            }
        }
        jsonshi.append("}");
        String jsonshiresult = jsonshi.toString();

        //拼接区Json格式
        StringBuffer jsonqu = null;
        Set<String> setqu = mapqu.keySet();
        Iterator<String> irqu = setqu.iterator();
        while(irqu.hasNext()){
            jsonqu = new StringBuffer();
            jsonqu.append("[");
            String str = irqu.next().toString();
            for(int j = 0; j<mapqu.get(str).size();j++){
                jsonqu.append("\"");
                jsonqu.append(mapqu.get(str).get(j));
                jsonqu.append("\"");
                if(j < mapqu.get(str).size()-1){
                    jsonqu.append(",");
                }
            }
            jsonqu.append("]");
            mapquresult.put(str, String.valueOf(jsonqu));
        }

        StringBuffer jsonqu1 = new StringBuffer();;
        Set<String> setqu1 = mapquresult.keySet();
        Iterator<String> irqu1 = setqu1.iterator();
        int j = 0;
        jsonqu1.append("{");
        while(irqu1.hasNext()){
            j++;
            String str = irqu1.next().toString();
            jsonqu1.append("\""+str+"\":"+mapquresult.get(str));
            if(i<mapquresult.size()){
                jsonqu1.append(",");
            }
        }
        jsonqu1.append("}");
        String jsonquresult = jsonqu1.toString();

        ModelAndView mav = new ModelAndView("zhuce");

        mav.addObject("sheng",ls1);
        mav.addObject("shi",jsonshiresult);
        mav.addObject("qu",jsonquresult);
        return mav;
    }

前台JS获取

//根据选择的省,加载市选项
function onchangsheng(key){
    var shi = document.getElementById("user_shi");
    var qu = document.getElementById("user_qu");
    var map = ${shi};
    shi.options.length=0;
    qu.options.length=0;
    shi.options.add(new Option("--请选择市--","--请选择市--"));
    qu.options.add(new Option("--请选择区--","--请选择区--"));
    for(var i=0;i<map[key].length;i++){
          shi.options.add(new Option(map[key][i],map[key][i]))
    }
}

//根据选择的市,加载区选项
function onchangshi(key){
    var qu = document.getElementById("user_qu");
    var map = ${qu};
    qu.options.length=0;
    qu.options.add(new Option("--请选择区--","--请选择区--"));
    for(var i=0;i<map[key].length;i++){
        qu.options.add(new Option(map[key][i],map[key][i]))
    }
}

此效果为了实现三级联动。不使用AJAX的情况的下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值