java - POJO for rest Get调用返回java中嵌套的复杂json

标签 java spring spring-boot spring-mvc

您好,我需要工作流程(如何创建 pojo 结构以及如何通信)来为 REST API get Call 创建以下 json 结构。

请帮帮我

[
  {
   "id":"1", 
   "Nmae":"gourav",
    "Gender":"Male",
     "usertype":{
                 "Typeone":"Admin",
                 "Status":"Active"
                 }
                {
                  "Typetwo":"Agent",
                  "Status":"Disabled"
                  }
  },
  {
   "id":"2", 
   "Nmae":"satya",
    "Gender":"Male",
     "usertype":{
                 "Typeone":"Admin",
                 "Status":"disabled"
                 }
                {
                  "Typetwo":"Agent",
                  "Status":"active"
                  }
  }
]

最佳答案

您可以关注这样的内容,

<小时/>

Controller 类,您将在其中定义路线 -

@GET
@Path("/users")
@Produces({ javax.ws.rs.core.MediaType.APPLICATION_JSON})
public Response getUser(){

    // Create Object of your DAO or Service class and use getUserDetails() to return a list of users, maybe from the Database.
    List<User> usersList = serviceExampleObject.getUserDetails();

    //Set the list field to the response object
    return Response.status(Status.OK).entity(usersList).build();
}

如果你想遵循 SpringBoot 方法,你的 Controller 将是 -

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public ResponseEntity<?> getUsers(){

        List<Users> usersList = userService.getUsersDetail();

        return new ResponseEntity<>(usersList, HttpStatus.OK);
    }
}

创建一个用户 PoJo(没有添加所有 getter/setter 以使帖子简短)-

class User{

    private Integer id;
    private String name;
    private String gender;
    private List<UserType> userType;

    public Integer getId() {
        return id;
    }
    ...
    ...

    public void setUserType(List<UserType> userType) {
        this.userType = userType;
    }
}

创建用户类型 PoJo -

class UserType{
    private String typeNumber;
    private String typeRole;
    private String status;

    public String getTypeNumber() {
        return typeNumber;
    }
    ...
    ...

    public void setStatus(String status) {
        this.status = status;
    }
}

此外,json 响应需要稍微修改一下。在 userType 字段中,您可以拥有不同名称的字段,因此,我建议遵循以下方法:

"usertype": [
    {
        "typeNumber": "one",
        "typeRole": "Admin",
        "status": "Active"
    },
    {
        "typeNumber": "two",
        "typeRole": "Agent",
        "status": "Disabled"
    }
]

关于java - POJO for rest Get调用返回java中嵌套的复杂json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61359846/

相关文章:

spring-boot - 如何保护 websocket 应用程序 [Spring boot + STOMP]

java - 在生产环境中连接 jmx 时出错

java - 如何在 hibernate 状态下使用 mysql compress()/uncompress()?

java - 逆向工程升级到 Hibernate 3.6 错误

java - 不满意的依赖异常 : Error creating bean(by BeanNotOfRequiredTypeException)

java - eclipse ide中的entityName_无法解析为变量,错误消息?

java - 使用递归求解 Hadamard 矩阵

java - 使 Java Servlet 线程安全

java - 在 Spring AMQP 中使用 Lyra 风格处理重新连接/重试

gradle - 无法开始使用 Spring Boot 和 Gradle