创建 POJO 并返回多个对象值

Posted

技术标签:

【中文标题】创建 POJO 并返回多个对象值【英文标题】:Creating POJO and returning multiple object values 【发布时间】:2021-01-08 01:30:36 【问题描述】:

我正在读取格式为 JSON 的数据:


 "student" : [ 
  
   "roll" : 1, 
   "name" : "abc",
   "subjects" : [
     
      "major" : "chemistry", 
      "minor" : "maths"
     , 
     
      "major" : "biology", 
      "minor" : "physics" 
      
   ]
  , 
  
   "roll" : 2, 
   "name" : "xyz", 
   "subjects" : [
     
      "major" : "english", 
      "minor" : "biology"
     , 
     
      "major" : "english", 
      "minor" : "physics" 
     
   ]
   
 ]

我将“学生”存储到一个字符串中,并将每个学生的详细信息 - 'roll、name、subjects' 放入 POJO。

    ObjectMapper 映射器 = new ObjectMapper(); Map当我给出“Map.class”时,我得到错误,当我给出 new TypeReference>() 时,它将包而不是 json 存储到 POJO。我用什么代替'?'

    在给定学生姓名的情况下,返回特定学生的所有专业和未成年人的最佳方式是什么?我应该做一个哈希图还是列表?或者有没有其他办法?

【问题讨论】:

【参考方案1】:

我假设您正在读取 JSON 字符串,并且您需要将它们转换为 POJO,在这种情况下您需要如下设计您的 POJO,


class Reports
    
    private final List<Student> student;

   // getters & setters



class Student 

private final int roll;
private final String name;
private final List<Subject> subjects;

// getters & setters




class Subject 

private final String major;
private final String minor;

// getters & setters



那么你可以如下使用,

ObjectMapper mapper = new ObjectMapper();
Reports reports = mapper.readValue(jsonString, Reports.class);

POST 已编辑

【讨论】:

由于 POJO 中不包含“student”,因此报错 Unrecognized field “student”

以上是关于创建 POJO 并返回多个对象值的主要内容,如果未能解决你的问题,请参考以下文章

@JsonView的使用

mybatis输出映射总结

json接口返回值

从 Oracle 函数返回多个值

无法从 Spring Boot REST 中的 Hibernate POJO 返回 JSON

请问各位java中如何将数据库返回的多个字段值拼接为一个list并转换为json对象返回到前台,谢谢!