JavaRush /Blog Java /Random-MS /Serialisasi dalam Jackson. Bagaimanakah saya boleh menent...
ColdDeath
Tahap
Москва

Serialisasi dalam Jackson. Bagaimanakah saya boleh menentukan secara eksplisit subkelas mana yang hendak digunakan?

Diterbitkan dalam kumpulan
Setelah membaca kuliah di tahap 33, saya tidak dapat memahami bagaimana, apabila bersiri ke JSON menggunakan Jackson, nyatakan medan tambahan, jenis, untuk kelas dengan medan yang sama, bagaimana untuk melakukan ini dalam kuliah 4. Saya menunjukkan bahawa saya mahu masuk medan jenis, tetapi tiada apa yang berlaku Serialisasi dalam Jackson.  Bagaimanakah saya boleh menentukan secara eksplisit subkelas mana yang hendak digunakan?  - 1 . Tolong beritahu saya apa salah saya? Penyelesaian kelas awam { public static void main(String[] args) membuang IOException { Cat cat = new Cat(); cat.name = "Murka"; kucing.umur = 5; kucing.berat = 3; Anjing anjing = Anjing baru(); dog.name = "Pembunuh"; anjing.umur = 8; dog.owner = "Bill Jefferson"; ArrayList haiwan peliharaan = new ArrayList(); haiwan peliharaan.tambah(kucing); haiwan peliharaan.tambah(anjing); Penulis StringWriter = new StringWriter(); convertToJSON(penulis, haiwan peliharaan); 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) membuang IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(penulis, objek); } @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class , nama = "anjing") }) kelas statik awam Cat melanjutkan Haiwan peliharaan { umur int awam; berat int awam; } kelas statik awam Anjing memanjangkan Haiwan peliharaan { umur int awam; pemilik String awam; } public static class Pet { public String name; } }
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION