Java解析post请求复杂嵌套json数据

案例一:(两层嵌套)

请求数据: 

ps:一个对象包含一个对象;

Java解析post请求复杂嵌套json数据_第1张图片

方式一:使用map

代码段: 

@RestController
@RequestMapping("test")
public class testDemo {

    @PostMapping("demo")
    public void test(@RequestBody Map> mapMap){
         Map data = mapMap.get("data");
         System.out.println("data:"+data);
         Object name = mapMap.get("data").get("name");
         System.out.println("name:"+name);
    }

}

控制台打印: 

方式二:使用fastjson

Java解析post请求复杂嵌套json数据_第2张图片

我试过,用了回车,发现解析为空; 

 
      com.alibaba
      fastjson
      1.2.60
 
 
     org.projectlombok
     lombok
 
@Data
public class Test {

    private String name;

    private Integer age;

}
@RestController
@RequestMapping("test")
public class testDemo {

    @PostMapping("demo")
    public void test(String str){
        Object data = JSON.parseObject(str).get("data");
        Test test = JSONObject.parseObject(data.toString(), Test.class);
        System.out.println(test);

    }

}

这里解析出来的就是一个对象了。

当然也可以用HttpServletRequest request接收参数,不过会多一个步骤:String str = request.getParameter("str");

 

案例二:(三层嵌套,并包含list对象)

请求数据:

ps:一个对象中包含list对象,list对象包含对象及属性;

Java解析post请求复杂嵌套json数据_第3张图片

代码段:其实很简单,用实体类对象互相嵌套; 一个大的对象,包几个小对象

package com.lucifer.pojo;

import lombok.Data;

import java.util.List;

@Data
public class Test2 {

    public List alist;

    public List blist;
    
}
package com.lucifer.pojo;

import lombok.Data;

@Data
public class A{
    public String sex;
}
package com.lucifer.pojo;

import lombok.Data;

@Data
public class B{

    public C c;

    public String name;

    public Integer age;

}
package com.lucifer.pojo;

import lombok.Data;

@Data
public class C{
    public String EnName;
}

用一个大的实体类对象去接收; 

@RestController
@RequestMapping("test")
public class testDemo {

    @PostMapping("demo")
    public void test(@RequestBody Test2 test2){
        List alist = test2.getAlist();
        System.out.println("alist:"+alist);
        List blist = test2.getBlist();
        System.out.println("blist:"+blist);
    }

}

 

 

你可能感兴趣的:(Java常见问题)