【问题标题】:Creating POJO and returning multiple object values创建 POJO 并返回多个对象值
【发布时间】:2023-03-31 00:00:02
【问题描述】:

我正在读取格式为 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。

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

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

【问题讨论】:

    标签: java json list object 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”
    猜你喜欢
    • 2019-09-15
    • 1970-01-01
    • 2021-10-15
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2018-06-29
    • 2019-09-04
    相关资源
    最近更新 更多