首页 > 解决方案 > 创建 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" 
     }
   ]
  } 
 ]
}

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

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

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

标签: javajsonlistobjectpojo

解决方案


我假设您正在阅读 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);

发布编辑


推荐阅读