JavaRush /Blogue Java /Random-PT /Serialização em Jackson. Como posso especificar explicita...
ColdDeath
Nível 34
Москва

Serialização em Jackson. Como posso especificar explicitamente qual subclasse usar?

Publicado no grupo Random-PT
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 Serialização em Jackson.  Como posso especificar explicitamente qual subclasse usar?  - 1 . 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; } }
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION