JSON을 사용하는 Jackson: "인식할 수 없는 필드" 오류 해결
Jackson을 사용하여 JSON 문자열을 Java 객체로 변환할 때 다음과 같은 문제가 발생할 수 있습니다. JSON에 인식할 수 없는 필드가 있는 경우 "인식할 수 없는 필드, 무시할 수 있는 것으로 표시되지 않음" 오류가 발생합니다. 이 문제를 해결하기 위해 Jackson은 두 가지 옵션을 제공합니다.
JsonIgnoreProperties 주석
@JsonIgnoreProperties 주석을 사용하면 역직렬화 중에 POJO의 특정 필드를 무시할 수 있습니다. 예를 들어, 귀하의 경우 "래퍼" 필드를 무시할 수 있습니다.
@JsonIgnoreProperties(ignoreUnknown = true) class Wrapper { ... }
이렇게 하면 "래퍼"를 포함하여 인식할 수 없는 모든 속성이 무시됩니다.
사용자 정의 디시리얼라이저
무시된 속성을 더욱 세부적으로 제어해야 하는 경우 사용자 지정 역직렬 변환기를 만들 수 있습니다. 인식할 수 없는 필드를 처리하기 위해 역직렬화 메서드를 재정의합니다.
public class CustomDeserializer extends JsonDeserializer<Wrapper> { @Override public Wrapper deserialize(JsonParser parser, DeserializationContext context) throws IOException { Wrapper wrapper = new Wrapper(); ObjectCodec codec = parser.getCodec(); JsonToken token = parser.getCurrentToken(); while (token != JsonToken.END_ARRAY) { if (token == JsonToken.START_OBJECT) { Student student = codec.readValue(parser, Student.class); wrapper.getStudents().add(student); } token = parser.nextToken(); } return wrapper; } }
그런 다음 Jackson에 사용자 지정 역직렬 변환기를 등록합니다.
ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new SimpleModule().addDeserializer(Wrapper.class, new CustomDeserializer()));
위 내용은 Jackson으로 JSON을 역직렬화할 때 '인식할 수 없는 필드' 오류를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!