반응형
잭슨 - JSON 문자열 직렬화 해제 - TypeReference vs TypeFactory.constructureCollection유형
StackOverflow 질문에서 JSON 문자열을 클래스 목록으로 역직렬화하려면
유형 1(docs 링크):
List<SomeClass> someClassList = mapper.readValue(jsonString, typeFactory.constructCollectionType(List.class, SomeClass.class));
유형 2(docs 링크):
List<SomeClass> list = mapper.readValue(jsonString, new TypeReference<List<SomeClass>>() { });
위의 두 가지 유형 모두 작업을 수행하지만 이러한 구현 간의 차이점은 무엇입니까?
구축 후JavaType
둘 다 같은 역직렬화 기능을 호출하기 때문에 유일한 차이점은 범용 타입의 처리 방식입니다.
두 번째 유형은 완전히 정적이므로 유형은 컴파일 유형으로 알려져 있어야 하며 다를 수 없습니다.따라서 기본 클래스 리터럴을 사용하는 것과 비슷합니다.
첫 번째는 동적이기 때문에 파라미터화에 따라 다른 것을 구축하는 데 사용할 수 있습니다.
개인적으로 저는 모든 경우에 대해 첫 번째 대안을 선호합니다(익명의 내부 클래스가 하나 더 생기는 것을 피함). 하지만 두 번째 것이 더 읽기 쉬울 수 있습니다.
이를 실현하는 또 하나의 방법은 다음과 같습니다.
List<SomeClass> list = Arrays.asList(mapper.readValue(jsonString, SomeClass[].class));
언급URL : https://stackoverflow.com/questions/11936620/jackson-deserialising-json-string-typereference-vs-typefactory-constructcoll
반응형
'programing' 카테고리의 다른 글
Typescript - 확장 오류 클래스 (0) | 2023.02.23 |
---|---|
PL/SQL 블록 문제:데이터를 찾을 수 없음 오류 (0) | 2023.02.23 |
create-react-app에서 css 모듈을 사용하는 방법 (0) | 2023.02.23 |
데이터 바인딩 없이 값 렌더링 (0) | 2023.02.18 |
JSON 또는 SOAP(XML)? (0) | 2023.02.16 |