创建POJO并返回多个对象值

问题描述

我正在从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" 
     }
   ]
  } 
 ]
}

我正在将“学生”存储到字符串中,并将每个学生的详细信息-“名册,姓名,科目”放入POJO。

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

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

解决方法

我假设您正在读取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编辑