[英]How to read a json file with array, how can i modify my code to read json which has result and HD
我正在写一个小的 miroservice 来读取 json 文件并将其放入 postgredb。 目前它工作正常。 但现在我想用数组修改我的 json 文件。 以前没有“结果”和“高清”。
{
"result": {
"HD": [
{
"LOGADDR": "1000002624",
"CATEGORY": "ADD",
"NAME": "POLYTEC COMPOSITES GERMANY",
"STATUS": "ACTI"
}
]
}
}
我下面的代码工作正常,没有结果和高清
CommandLineRunner runner(ResponseService responseService) {
return args -> {
// read JSON and load json
ObjectMapper mapper = new ObjectMapper();
TypeReference<List<Response>> typeReference1 = new TypeReference<List<Response>>() {};
InputStream inputStream1 = TypeReference.class.getResourceAsStream("/json/response.json");
try {
List<Response> responses = mapper.readValue(inputStream1, typeReference1);
responseService.save(responses);
System.out.println(responses);
System.out.println("response saved");
} catch (IOException e) {
System.out.println("not saved" + e.getMessage());
}
};
}
我的域文件
@AllArgsConstructor
@Data
@Entity
@Table(name = "receive")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Response {
@Id
@JsonProperty("LOGADDR")
private String LOGADDR;
@JsonProperty("CATEGORY")
@Column(name = "CATEGORY")
private String CATEGORY;
@JsonProperty("NAME")
@Column(name = "NAME")
private String NAME;
@JsonProperty("STATUS")
@Column(name = "STATUS")
private String STATUS;
public Response() {
}
}
您可以像 JSON 一样更新您的域 object 树:
@Getter
class Foo {
Result result;
}
@Getter
class Result {
List<Response> hd;
}
@Getter
class Response {
...
}
ObjectMapper mapper = new ObjectMapper();
TypeReference<Foo> typeReference1=new TypeReference<Foo>(){};
InputStream inputStream1 = TypeReference.class.getResourceAsStream("/json/response.json");try
{
Foo foo = mapper.readValue(inputStream1, typeReference1);
List<Response> responses = foo.getResult().getHd();
responseService.save(responses);
System.out.println(responses);
System.out.println("response saved");
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.