java - 创建 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。
ObjectMapper 映射器 = 新 ObjectMapper();
Map<String, List object = mapper.readValue(Json, ?);
当我给出“Map.class”时,我得到错误,当我给出新的 TypeReference<Map<String,List>>(){} 时,它将包而不是 json 存储到 POJO。我用什么代替'?给定学生姓名,返回特定学生的所有专业和未成年人的最佳方式是什么?我应该做一个哈希图还是列表?或者还有其他方法吗?
解决方案
我假设您正在阅读 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);
发布编辑
推荐阅读
- fast-ai - Fastai 表格数据 - 简单数据集的错误结果
- json - 解析/循环通过此数据并使用 javascript 打印名称和商家
- php - 在渲染模板期间引发了异常(“路由“delete_User”的“参数“salt”必须匹配“[^/]++”
- python - 我将一组 N 值传递给一个循环,但无法让它打印输出
- google-sheets - 比较来自不同页面的多个单元格,同一张纸
- ruby-on-rails - Rails 复杂的类方法链接
- java - AVL 树实现 - 不存储高度
- java - appcompat 和片段在一个活动中
- node.js - 在 sequelize 中定义触发器 - NodeJS
- r - R Shiny 模块中的 updateSelectInput 不会将现有输入传递给“选定”参数