Serialização em Jackson. Como posso especificar explicitamente qual subclasse usar?
Tendo lido as palestras do nível 33, não consigo entender como, ao serializar em JSON usando Jackson, especificar um campo adicional, tipo, para aulas com os mesmos campos, como fazer isso na aula 4. Indico que quero entrar o campo type, mas nada acontece . Por favor, me diga o que estou fazendo de errado? solução de classe pública { public static void main(String[] args) throws IOException { Cat cat = new Cat(); cat.name = "Murka"; idade do gato = 5; peso.gato = 3; Cachorro = novo Cachorro(); cachorro.nome = "Assassino"; idade do cachorro = 8; cachorro.proprietário = "Bill Jefferson"; ListaArray
animais de estimação = new ArrayList(); animais de estimação.add(gato); animais de estimação.add(cachorro); Escritor StringWriter = new StringWriter(); convertToJSON(escritor, animais de estimação); System.out.println(writer.toString()); //[{"name":"Murka","idade":5,"peso":3},{"nome":"Assassino","idade":8,"proprietário":"Bill Jefferson"}] } public static void convertToJSON (escritor StringWriter, objeto Object) lança IOException { mapeador ObjectMapper = new ObjectMapper(); mapper.writeValue(escritor, objeto); } @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class , nome = "cachorro") }) public static class Cat estende Pet { public int idade; peso interno público; } public static class Cachorro estende Pet { public int idade; proprietário da string pública; } public static class Pet { public String nome; } }
GO TO FULL VERSION