JavaRush /Java Blog /Random-KO /잭슨에서 연재. 사용할 하위 클래스를 명시적으로 지정하려면 어떻게 해야 합니까?
ColdDeath
레벨 34
Москва

잭슨에서 연재. 사용할 하위 클래스를 명시적으로 지정하려면 어떻게 해야 합니까?

Random-KO 그룹에 게시되었습니다
레벨 33의 강의를 읽은 후 Jackson을 사용하여 JSON으로 직렬화할 때 동일한 필드가 있는 클래스에 대해 추가 필드, 유형을 지정하는 방법, 강의 4에서 이를 수행하는 방법을 이해할 수 없습니다. 유형 필드는 있지만 아무 일도 일어나지 않습니다 잭슨에서 연재.  사용할 하위 클래스를 명시적으로 지정하려면 어떻게 해야 합니까?  - 1 . 내가 뭘 잘못하고 있는지 말해주세요. 공용 클래스 솔루션 { public static void main(String[] args) throws IOException { Cat cat = new Cat(); cat.name = "무르카"; 고양이 나이 = 5; cat.weight = 3; 개 dog = new Dog(); dog.name = "살인자"; 개.나이 = 8; dog.owner = "빌 제퍼슨"; 배열목록 애완동물 = new ArrayList(); 애완동물.추가(고양이); 애완동물.추가(개); StringWriter 작가 = 새로운 StringWriter(); ConvertToJSON(작가, 애완동물); System.out.println(writer.toString()); //[{"이름":"무르카","나이":5,"체중":3},{"이름":"킬러","나이":8,"소유자":"빌 제퍼슨"}] } public static void ConvertToJSON(StringWriterwriter, Object object) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(작가, 개체); } @JsonTypeInfo(사용 = JsonTypeInfo.Id.NAME, 속성 = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class , name = "dog") }) public static class Cat 확장 Pet { public int age; 공개 정수 가중치; } 공개 정적 클래스 Dog 확장 Pet { public int age; 공개 문자열 소유자; } 공개 정적 클래스 Pet { 공개 문자열 이름; } }
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION