У меня есть собственный десериализатор
@Override
public Map<String, Car<?, ?>> deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
JsonNode carsNode = p.getCodec().readTree(p);
Map<String, Car<?, ?>> CarsMap = new HashMap<String, Car<?, ?>>();
ObjectMapper mapper = new ObjectMapper();
for (JsonNode node : carsNode) {
CarsMap.put(node.get("name").asText(), mapper.readValue(node.asText(), Car.class));
}
return CarsMap;
}
Думал, что это не работает, потому что Car
— это базовый класс, и на карте должны быть Map String, SubClasses of Cars)
Введите JSON = [{"name": "honda", "type": "Regular , "speed": 60}]
это должно быть на карте, например Map.put("honda", RegularCar.class)