JavaRush /Java Blog /Random-TL /Serialization sa Jackson. Paano ko tahasang tukuyin kung ...
ColdDeath
Antas
Москва

Serialization sa Jackson. Paano ko tahasang tukuyin kung aling subclass ang gagamitin?

Nai-publish sa grupo
Sa pagbabasa ng mga lecture sa level 33, hindi ko maintindihan kung paano, kapag nagse-serialize sa JSON gamit ang Jackson, ay tumukoy ng karagdagang field, uri, para sa mga klase na may parehong field, kung paano ito gagawin sa lecture 4. Ipinapahiwatig ko na gusto kong pumasok ang uri ng field, ngunit walang nangyayari Serialization sa Jackson.  Paano ko malinaw na matutukoy kung aling subclass ang gagamitin?  - 1 . Mangyaring sabihin sa akin kung ano ang ginagawa kong mali? public class Solution { public static void main(String[] args) throws IOException { Cat cat = new Cat(); cat.name = "Murka"; pusa.edad = 5; pusa.timbang = 3; Asong aso = bagong Aso(); dog.name = "Killer"; aso.edad = 8; dog.owner = "Bill Jefferson"; ArrayList mga alagang hayop = bagong ArrayList(); pets.add(cat); pets.add(aso); StringWriter writer = bagong StringWriter(); convertToJSON(manunulat, mga alagang hayop); System.out.println(writer.toString()); //[{"name":"Murka","age":5,"weight":3},{"name":"Killer","age":8,"owner":"Bill Jefferson"}] } public static void convertToJSON(StringWriter writer, Object object) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(manunulat, bagay); } @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class , name = "aso") }) public static class Cat extends Pet { public int age; pampublikong int timbang; } pampublikong static na klase Pinapalawak ng Aso ang Alagang Hayop { public int age; may-ari ng pampublikong String; } public static class Pet { public String name; } }
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION