json数据解析成Java对象

递归调用

    public static Map<String,Area>  getAreaMap(Map<Object, Object> map)
        Map<String,Area> areaMap = new HashMap<>();
        Set<Object> keySet = map.keySet();
        for (Object k:keySet) {
            Area area = null;
            Object v = map.get(k);
            if(v instanceof Area){
                area = (Area) v;//System.out.println("Area对象");
            }else {
                String vS = v.toString();
                area = JSONObject.parseObject(vS,Area.class);
            }
            areaMap.put(k.toString(),area);
            Map children = area.getChildren();
            Map<String,Area> areaMap2 = getAreaMap(children);
            area.setChildren(areaMap2);

        }

        return areaMap;
    }

Area

package com.entity;

import java.util.HashMap;
import java.util.Map;

public class Area {
    String key;
    String value;
    Map<String,Area> children = new HashMap<>();

    public String getKey(){
        return key;
    }
    public void setKey(String key){
        this.key = key;
    }
    public String getValue(){
        return value;
    }

    public void setValue(String value){
        this.value = value;
    }

    public Map<String,Area> getChildren(){
        return children;
    }

    public void setChildren(Map<String,Area> children){
        this.children = children;
    }

   

    @Override
    public String toString() {
        return "Area{" +
                "key='" + key + '\'' +
                ", value='" + value + '\'' +
                ", children=" + children +
                '}';
    }
}

json数据

"110000":{
    "key":"110000",
    "value":"北京市",
    "children":{
      "110100":{
        "key":"110100",
        "value":"北京市",
        "children":{
          "110101":{
            "key":"110101",
            "value":"东城区"
          },
          "110102":{
            "key":"110102",
            "value":"西城区"
          },
          "110105":{
            "key":"110105",
            "value":"朝阳区"
          },
          "110106":{
            "key":"110106",
            "value":"丰台区"
          },
          "110107":{
            "key":"110107",
            "value":"石景山区"
          },
          "110108":{
            "key":"110108",
            "value":"海淀区"
          },
          "110109":{
            "key":"110109",
            "value":"门头沟区"
          },
          "110111":{
            "key":"110111",
            "value":"房山区"
          },
          "110112":{
            "key":"110112",
            "value":"通州区"
          },
          "110113":{
            "key":"110113",
            "value":"顺义区"
          },
          "110114":{
            "key":"110114",
            "value":"昌平区"
          },
          "110115":{
            "key":"110115",
            "value":"大兴区"
          },
          "110116":{
            "key":"110116",
            "value":"怀柔区"
          },
          "110117":{
            "key":"110117",
            "value":"平谷区"
          },
          "110118":{
            "key":"110118",
            "value":"密云区"
          },
          "110119":{
            "key":"110119",
            "value":"延庆区"
          }
        }
      }
    }
  }

pom

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.70</version>
        </dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的示例Servlet,实现了上述功能: ```java import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.fasterxml.jackson.databind.ObjectMapper; public class StudentServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 读取POST请求中的JSON数据 ObjectMapper mapper = new ObjectMapper(); Student student = mapper.readValue(request.getInputStream(), Student.class); // 将Student对象保存到JavaBean中 request.setAttribute("student", student); // 设置响应类型为XML response.setContentType("text/xml"); response.setCharacterEncoding("UTF-8"); // 构造XML响应 String xml = "<student>" + "<name>" + student.getName() + "</name>" + "<grade>" + student.getGrade() + "</grade>" + "</student>"; // 输出XML响应 PrintWriter out = response.getWriter(); out.print(xml); out.flush(); } } ``` 其中,Student类是一个简单的JavaBean,用于保存学生姓名和绩: ```java public class Student { private String name; private int grade; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getGrade() { return grade; } public void setGrade(int grade) { this.grade = grade; } } ``` 请注意,以上代码仅为示例,实际情况下可能需要进行错误处理、参数校验等操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_35694833

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值