[英]How to .save/POST an array of values from a JSON key value pair in Java spring-boot JPA
[英]How to take key-values from given json in spring boot java
从给定的 json 中获取键值的代码是什么,我们可以使用哈希映射? 如何编写代码?需要更改 pojo 类吗?我需要从 JSON 中获取 'startTime' 和 'endTime'
My input Json
{
"active" : 0,
"id" : 3,
"doctorId" :8,
"hospitalId" : 55,
"timeSlot" : [
{ "startTime": "10",
"endTime": "12"
},
{ "startTime": "3",
"endTime": "5"
}
]
}
我的代码
List slot = customDuty.getTimeSlot();
int count = 0;
while (slot.size() > count) {
logger.info("checking"+slot.get(count));
count++;
}
Pojo类
private List timeSlot ;
public List getTimeSlot() {
return timeSlot;
}
public void setTimeSlot(List timeSlot) {
this.timeSlot = timeSlot;
}
输出
checking{startTime=10, endTime=12}
checking{startTime=3, endTime=5}
如果您正在使用 SpringBoot java,则需要在 POM 中添加 Jackson 依赖项
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency>
然后你需要用你的 POJO 映射 json 文件
public class ObjectMapperDemo {
public Hospital readJsonWithObjectMapper() throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
Hospital hos = objectMapper.readValue(new File("hospital.json"), Hospital.class);
return hospital;
}
}
医院实体类定义如下:
import java.util.List;
public class Hospital {
private boolean active;
private int id;
private int doctorId;
private int hospitalId;
private List<TimeSlot> timeSlot;`
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getDoctorId() {
return doctorId;
}
public void setDoctorId(int doctorId) {
this.doctorId = doctorId;
}
public int getHospitalId() {
return hospitalId;
}
public void setHospitalId(int hospitalId) {
this.hospitalId = hospitalId;
}
public List<TimeSlot> getTimeSlot() {
return timeSlot;
}
public void setTimeSlot(List<TimeSlot> timeSlot) {
this.timeSlot = timeSlot;
}
@Override
public String toString() {
return "Hospital{" +
"active=" + active +
", id=" + id +
", doctorId=" + doctorId +
", hospitalId=" + hospitalId +
", timeSlot=" + timeSlot +
'}';
}
}
最 Java 风格是创建一个 TimeSlot pojo
class TimeSlot {
private int startTime;
private int endTime;
// getters and setters
}
然后在你的主要实体中
class MainEntity {
private List<TimeSlot> timeSlot;
// getters and setters
}
然后你让 spring (jersey) 为你解析它。
用法:
mainEntity.getTimeSlots().foreach(timeSlot -> logger.log(
"checking\{startTime={}, endTime={}\}",
timeSlot.getStartTime(),
timeSlot.getEndTime(),
))
但实际上,您可以采用将HashMap<String, Integer>
作为timeSlot
类型的timeSlot
,并通过其键进行访问。
class MainEntity {
private List<HashMap<String, Integer>> timeSlot;
// getters and setters
}
mainEntity.getTimeSlots().foreach(timeSlot -> logger.log(
"checking\{startTime={}, endTime={}\}",
timeSlot.get("startTime"),
timeSlot.getEndTime("endTime"),
))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.