Serialisasi dalam Jackson. Bagaimanakah saya boleh menentukan secara eksplisit subkelas mana yang hendak digunakan?
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 . 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; } }
GO TO FULL VERSION