【发布时间】:2020-02-07 00:26:12
【问题描述】:
我有一个 Spring Boot 应用程序,我在其中使用 RestTemplate 调用 Rest API,我收到以下 JSON 格式的响应:
{
"data": [
{
"id": "1",
"type": "type1",
"config": {
"property1" : "value1",
"property2" : "value2"
}
},
{
"id": "2",
"type": "type2",
"config": {
"property3" : "value3",
"property4" : "value4",
"propArray": [ "element1", "element2"]
}
}
]
}
数组 'data' 中的各个元素有几个不同的结构(上面的 2 个示例),我想将不同的类类型映射到各个元素,这取决于元素 'type' 的值。
例如值'type1'应该映射到类类型'Type1'的对象等等。
我创建了如下类: 我的回应:
public Class MyResponse {
List<Data> data;
..
\\getter and setters
}
数据:
public Interface Data {}
类型1:
public Class Type1 implements Data {
private String property1;
private String property2;
..
\\getter and setters
}
类型2:
public Class Type1 implements Data {
private String property3;
private String property4;
private List<String> propArray;
..
\\getter and setters
}
如何映射以上条件结构?
【问题讨论】:
-
这就是json序列化和反序列化。使用 Jackson tutorials.jenkov.com/java-json/jackson-objectmapper.html 并创建 POJO 使用此站点 jsonschema2pojo.org
标签: spring-boot jackson resttemplate