JavaRush /Java Blog /Random-JA /ジャクソンで連載中。使用するサブクラスを明示的に指定するにはどうすればよいですか?
ColdDeath
レベル 34
Москва

ジャクソンで連載中。使用するサブクラスを明示的に指定するにはどうすればよいですか?

Random-JA グループに公開済み
レベル 33 の講義を読んだのですが、Jackson を使用して JSON にシリアル化するときに、同じフィールドを持つクラスに対して追加のフィールド、タイプを指定する方法、講義 4 でこれを行う方法がわかりません。 type フィールドを入力しても何も起こりません ジャクソンで連載中。 使用するサブクラスを明示的に指定するにはどうすればよいですか?  - 1 。私の何が間違っているのか教えてください。public class Solution { public static void main(String[] args) throws IOException { Cat cat = new Cat(); cat.name = "ムルカ"; cat.age = 5; cat.weight = 3; 犬 犬 = new Dog(); Dog.name = "キラー"; 犬の年齢 = 8; Dog.owner = "ビル・ジェファーソン"; 配列リスト ペット = 新しい ArrayList(); ペット.add(猫); ペット.add(犬); StringWriter ライター = new StringWriter(); ConvertToJSON(ライター、ペット); System.out.println(writer.toString()); //[{"名前":"ムルカ","年齢":5,"体重":3},{"名前":"殺人者","年齢":8,"所有者":"ビル・ジェファーソン"}] public static void ConvertToJSON(StringWriter Writer, Object object) throws IOException { ObjectMapper マッパー = new ObjectMapper(); Mapper.writeValue(ライター, オブジェクト); @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class , name = "dog") }) public static class Cat extends Pet { public int age; パブリック int 重み。public static class Dog extends Pet { public int age; } パブリック文字列の所有者。} public static class Pet { public 文字列名; } }
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION