Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javajacksonsubtype问题_Java_Json_Parsing_Jackson - Fatal编程技术网

javajacksonsubtype问题

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

我们有一些代码来解析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':'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"])