Jackson을 사용하여 JSON을 다형성 유형으로 역직렬화: 컴파일 오류 해결
Jackson을 사용하여 다형성 JSON 역직렬화를 구현하려고 하면 사용자가 컴파일 오류를 경험할 수 있습니다. -time 오류 "ObjectMapper 유형의 readValue(JsonParser, Class) 메서드는 mapper.readValue(root, AnimalClass)를 호출할 때 인수(ObjectNode, Class
이 문제를 해결하려면 다형성 역직렬화를 위한 Jackson의 주석 기반 접근 방식을 활용하는 것을 고려해 보세요. 여기에는 추상 Animal 클래스와 해당 하위 클래스(Dog 및 Cat)에 @JsonTypeInfo, @JsonSubTypes 및 @JsonIgnoreProperties 주석을 추가하는 작업이 포함됩니다. 예는 다음과 같습니다.
@JsonIgnoreProperties(ignoreUnknown = true) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY) @JsonSubTypes({ @JsonSubTypes.Type(value = Dog.class, name = "Dog"), @JsonSubTypes.Type(value = Cat.class, name = "Cat") }) public abstract class Animal { protected String name; // Getters and setters for the name property }
하위 클래스에서는 필요에 따라 추가 속성을 지정할 수 있습니다. 예를 들어 Dog에는 breed 속성이 있고 Cat에는 favoriteToy 속성이 있을 수 있습니다.
JSON을 Animal 객체로 역직렬화할 때 Jackson은 @type 속성을 사용하여 인스턴스화할 특정 하위 클래스를 결정합니다. 테스트 사례의 예는 다음과 같습니다.
ObjectMapper objectMapper = new ObjectMapper(); Animal myDog = new Dog("ruffus", "english shepherd"); Animal myCat = new Cat("goya", "mice"); String dogJson = objectMapper.writeValueAsString(myDog); Animal deserializedDog = objectMapper.readValue(dogJson, Animal.class); String catJson = objectMapper.writeValueAsString(myCat); Animal deseriliazedCat = objectMapper.readValue(catJson, Animal.class);
이 접근 방식을 사용하면 다형성 JSON을 해당 하위 클래스로 원활하게 역직렬화하여 앞서 언급한 컴파일 시간 오류를 방지할 수 있습니다.
위 내용은 Jackson을 사용하여 JSON을 다형성 유형으로 역직렬화하고 컴파일 오류를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Go Language는 GO 언어에서 SM4 및 SM2의 암호화 및 암호 해독을 구현합니다. 이 기사는 Go Language를 사용하여 GO Language의 암호화 및 SM2 알고리즘의 암호화 및 암호 해독 프로세스를 구현하여 Java의 요구를 충족시키는 방법을 자세히 소개합니다.

파이썬 프로젝트에 묶을 필요가 있습니까? 최근에 Python을 배우고있을 때 많은 Django 오픈 소스 프로젝트가 Views Function에서 많은 것을 썼다는 것을 알았습니다.

시스템 도킹의 필드 매핑 처리 시스템 도킹을 수행 할 때 어려운 문제가 발생합니다. 시스템의 인터페이스 필드를 효과적으로 매핑하는 방법 ...

Intellijidea는 SpringBoot 프로젝트의 포트 번호를 어떻게 인식합니까? IntellijideAultimate 버전을 사용하여 봄을 시작하십시오 ...

효율적인 프로그래밍 : 신뢰할 수있는 코드 도구 및 리소스를 찾고 많은 프로그래머가 효율성을 향상시키고 대규모 정보를 피하기 위해 편리한 코드 도구 웹 사이트를 찾고 싶어합니다 ...

JWT 및 세션에 대한 혼란과 답변은 JWT 및 세션을 학습 할 때 많은 초보자가 종종 성격과 적용 가능한 시나리오에 대해 혼란스러워합니다. 이 기사는 J ...을 중심으로 진행됩니다.

Windows Server 2019 방화벽과 WebSocket 간의 통신 문제에 대한 자세한 설명. SpringBoot를 사용하여 개발 된 JAR 프로그램은 Windows Server 2019에 배포되었습니다 ...

Intellij에서 ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Dreamweaver Mac版
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
