【发布时间】:2017-10-21 02:01:04
【问题描述】:
我有一个 JSON 请求,格式如下:
{
"type": "Car"
"data": {
"object": {
"id": "1"
"color": "Red"
"plate": "J124D"
},
"owner": {
"name": "John"
}
}
}
现在,类型字段决定了对象字段的内容。在上面的示例中,type = Car 表示对象容器将具有 id、color 和 plate 字段。但是,如果 type = Plane,Object 字段将有 id、wingspan、manufacturer 等。基本上,type 字段将动态地规定 Java 对象对应于“对象”。我对杰克逊还很陌生,所以我一直在寻找一些关于如何在代码中实现这种类型的动态映射的指针。到目前为止,我有这个,
public class Request {
@JsonProperty
String type;
@JsonProperty
Data data; // Probably need a custom deserializer here?
}
另一个难点是Request的使用。可能必须将数据转换为 CarData 或 PlaneData 之类的东西,以便调用者可以轻松地执行 request.getType(),然后从转换为适当数据类型(汽车或飞机)的请求中提取数据。
【问题讨论】: