我有我自己的自定义解串器杰克逊反序列化列表
@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
是一个基类,地图应该有地图的字符串,汽车的子类)
输入JSON = [{ “名称”: “本田”, “类型”:“普通, “速度”:60}]
这应该是在地图如Map.put("honda", RegularCar.class)
我只是想知道为什么你不反序列化的汽车列表,然后在单独的方法/类转换它映射? – Pulkownik
@Pulkownik我实际上有麻烦deserializng汽车“mapper.readValue(node.asText(),Car.class)”这似乎并不工作 – user3100209
你的汽车类是怎么样的?你使用@JsonDeserialize? – Pulkownik