JavaRush /Java Blog /Random-ID /Serialisasi di Jackson. Bagaimana saya bisa secara ekspli...
ColdDeath
Level 34
Москва

Serialisasi di Jackson. Bagaimana saya bisa secara eksplisit menentukan subkelas mana yang akan digunakan?

Dipublikasikan di grup Random-ID
Setelah membaca kuliah di level 33, saya tidak mengerti bagaimana, ketika membuat serial ke JSON menggunakan Jackson, tentukan bidang tambahan, ketik, untuk kelas dengan bidang yang sama, bagaimana melakukannya di kuliah 4. Saya menunjukkan bahwa saya ingin masuk bidang type, tetapi tidak terjadi apa-apa Serialisasi di Jackson.  Bagaimana saya bisa secara eksplisit menentukan subkelas mana yang akan digunakan?  - 1 . Tolong beri tahu saya apa yang saya lakukan salah? Solusi kelas publik { public static void main(String[] args) throws IOException { Cat cat = new Cat(); cat.name = "Murka"; kucing.umur = 5; kucing.berat = 3; Anjing anjing = Anjing baru(); dog.name = "Pembunuh"; anjing.umur = 8; anjing.pemilik = "Bill Jefferson"; Daftar Array hewan peliharaan = Daftar Array baru(); hewan peliharaan.tambahkan(kucing); hewan peliharaan.tambahkan(anjing); Penulis StringWriter = StringWriter baru(); convertToJSON(penulis, hewan peliharaan); Sistem.keluar.println(penulis.toString()); //[{"name":"Murka","age":5,"weight":3},{"name":"Killer","age":8,"owner":"Bill Jefferson"}] } public static void convertToJSON(penulis StringWriter, objek Objek) melempar IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(penulis, objek); } @JsonTypeInfo(gunakan = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class , nama = "anjing") }) public static class Cat extends Pet { public int age; bobot int publik; } public static class Dog extends Pet { public int age; pemilik String publik; } kelas statis publik Pet { nama String publik; } }
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION