javajacksonsubtype问题
我们有一些代码来解析json:javajacksonsubtype问题,java,json,parsing,jackson,Java,Json,Parsing,Jackson,我们有一些代码来解析json: public class Main { private static final String TEST = "{'wrap': {'measure_score_list': [{'type':'dog dog','name':'Spike','breed':'mutt','leash_color':'red'},{'type':'cat','name':'Fluffy','favorite_toy':'spider ring'},{'type':'cat
public class Main {
private static final String TEST = "{'wrap': {'measure_score_list': [{'type':'dog dog','name':'Spike','breed':'mutt','leash_color':'red'},{'type':'cat','name':'Fluffy','favorite_toy':'spider ring'},{'type':'cat1','name':'Holy','favorite_toy':'ball'}]}}";
public static void main(String[] args) throws Exception {
JSONObject resultObj = JSONObject.fromObject(TEST);
ObjectMapper mapper = new ObjectMapper().setVisibility(
JsonMethod.FIELD, Visibility.ANY);
String resJson = resultObj.getString("wrap");
Zoo zoo = mapper.readValue(resJson, Zoo.class);
}
}
// Models
class Zoo {
public List<Animal> animals;
}
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@Type(value = Cat.class, name = "cat"),
@Type(value = Dog.class, name = "dog dog"),
@Type(value = Cat.class, name = "cat1")
})
abstract class Animal {
public String name;
}
class Dog extends Animal {
public String breed;
public String leash_color;
}
class Cat extends Animal {
public String favorite_toy;
}
我认为Jackson不能为许多类型提供一个类,那么它是否能够以某种方式启用这个函数呢?等待你的帮助
Could not resolve type id 'cat1' into a subtype of [simple type, class net.test.Animal]
at [Source: java.io.StringReader@e068b6a; line: 1, column: 168] (through reference chain: net.test.Main.Zoo["animals"])