这是我从API得到的json响应。
{
"job_1": {
"metaData": {},
"extractedData": {
"score_a": [1,2,3,4],
"score_b": [40,40,72,136],
"score_c": [3,3.5,3,2,3,9],
"score_d": [1659752409254420,1659752416354536,1659752424695028,1659752431823242 ]
}
}
}
作为响应,job_1可以变化。可能是job3或job4。
如何为此响应创建pojo文件?
提前谢谢。
我修改了请求,使每个作业在请求主体中未标记,被视为列表中的对象
请求如下:
{
"jobs":[
{
"metaData": {},
"extractedData": {
"score_a": [
1,
2,
3,
4
],
"score_b": [
40,
40,
72,
136
],
"score_c": [
3,
3.5,
3,
2,
3,
9
],
"score_d": [
1659752409254420,
1659752416354536,
1659752424695028,
1659752431823242
]
}
},
{
"metaData": {},
"extractedData": {
"score_a": [
1,
2,
3,
4
],
"score_b": [
40,
40,
72,
136
],
"score_c": [
3,
3.5,
3,
2,
3,
9
],
"score_d": [
1659752409254420,
1659752416354536,
1659752424695028,
1659752431823242
]
}
}
]
}
通过向元数据添加注释@JsonSerialize,可以显示不包含元素的对象
public class response {
List<job> jobs;
public static class job {
MetaData metaData;
ExtractedData extractedData;
@JsonSerialize
public static class MetaData {
//insert code
}
public static class ExtractedData {
List<Integer> score_a;
List<Integer> score_b;
List<Integer> score_c;
List<Long> score_d;
}
}
}
我试过像这个
@Controller
public class test {
@RequestMapping(value = "/test", method = RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<response> testPost(@RequestBody response res) {
return ResponseEntity.ok(res);
}
}
使用HashMap处理动态键job_1可能会有所不同。也许是job3或者job4。
public class response {
HashMap<String, job> jobs;
public static class job {
MetaData metaData;
ExtractedData extractedData;
@JsonSerialize
public static class MetaData {
//insert code
}
public static class ExtractedData {
List<Integer> score_a;
List<Integer> score_b;
List<Integer> score_c;
List<Long> score_d;
}
}
}