【发布时间】:2018-12-12 11:46:39
【问题描述】:
我没有找到关于同一问题的任何主题。如果我错了,请纠正我。
以下 JSON 是我从外部 API 返回的响应的简化版本:
{
"vehicles": [
{
"car": {
"color": "blue",
"brand": "audi",
"maxSpeed": 300,
"releaseYear": 2016
}
},
{
"car": {
"color": "red",
"brand": "bmw",
"maxSpeed": 200,
"releaseYear": 2012
}
},
{
"motorcycle": {
"color": "yellow",
"brand": "yamaha",
"maxSpeed": 300,
"releaseYear": 2013
}
}
]
}
所以我得到了一个车辆列表,每个元素都是一个对象,它有一个名为 either 汽车或摩托车的字段,没有其他选项是可能的。两种类型的车辆具有完全相同的数据字段。 区分这两种类型的唯一方法是通过 JSON 中的键名
我想如何解析它:
在 Java 中我有三个对象:
abstract class Vehicle {
String color;
String brand;
Integer maxSpeed;
Integer releaseYear
public boolean hasFourWheels();
}
class Car extends Vehicle {
public boolean hasFourWheels() { return true; }
}
class Motorcycle extends Vehicle {
public boolean hasFourWheels() { return false; }
}
是否可以获得每个实例是汽车或摩托车的车辆列表?
【问题讨论】:
标签: java json rest parsing jackson