잭슨 VS지손
JSON을 찾기 위해 기존 라이브러리를 검색한 결과, 다음과 같은 두 가지 결과가 나왔습니다.
- 잭슨
- 구글 GSon
저는 GSON에 대해 조금 편파적이지만, 인터넷에서는 GSon이 어떤 천상의 퍼포먼스 문제를 겪고 있다고 합니다(2009년 9월 현재).
저는 비교를 계속하고 있습니다.그동안 결정을 내리기 위해 도움을 구하고 있습니다.
지난 주에 이 조사를 했는데 같은 도서관 2개가 나왔어요.Spring 3(기본 Json 뷰 'JacksonJsonView'에서 Jackson을 채택한 것)을 사용하고 있기 때문에, 같은 것을 사용하는 것이 당연했습니다.두 lib는 거의 비슷해마지막에는 json 파일에 매핑됩니다. : )
어쨌든 잭슨은 퍼포먼스에 +가 있다고 하셨는데, 그건 저에게 매우 중요합니다.웹페이지에서 볼 수 있듯이 프로젝트도 매우 활발하고, 그것도 매우 좋은 징조입니다.
Jackson과 Gson은 실제 데이터 바인딩 지원에 관한 가장 완전한 Java JSON 패키지입니다.다른 많은 패키지는 원시적인 맵/리스트(또는 동등한 트리 모델) 바인딩만 제공합니다.양쪽 모두 범용 타입을 완전하게 서포트하고 있어, 많은 일반적인 유스케이스에 대응할 수 있는 충분한 설정성도 갖추고 있습니다.
Jackson에 대해 더 잘 알고 있기 때문에 잭슨이 Gson보다 더 완벽한 지원을 받고 있다고 생각하는 몇 가지 측면이 있습니다(Gson 기능을 놓친 경우 사과).
- 전체 상속 및 고급 "믹스인" 주석을 포함한 광범위한 주석 지원(직접 추가할 수 없는 경우 주석을 클래스에 연결)
- 스트리밍(증분) 읽기, 쓰기, 초고성능(또는 메모리 제한) 사용 사례.데이터 바인딩(바인드 서브 트리)과 혼재 가능 --편집: 최신 버전의 Gson에는 스트리밍 리더도 포함되어 있습니다.
- 트리 모델(DOM과 같은 액세스), 다양한 모델(트리 <-> Java 객체 <-> 스트림) 간에 변환 가능
- 기본 생성자뿐만 아니라 모든 생성자(또는 정적 공장 방식)를 사용할 수 있습니다.
- 필드 및 getter/setter 액세스(이전 버전의 gson은 필드만 사용했으며 이는 변경되었을 수 있음)
- 즉시 사용 가능한 JAX-RS 지원
- 상호운용성: JAXB 주석 사용 가능, 공통 패키지(joda, ibatis, cglib), JVM 언어(grovy, clojure, scala) 지원/회피책 있음
- 출력에 대해 정적(선언된) 유형 처리를 강제하는 기능
- 다형 타입의 역직렬화 지원(Jackson 1.5) - List와 같은 것을 올바르게 시리얼화 및 역직렬화할 수 있습니다(추가 유형 정보 포함).
- 바이너리 콘텐츠 통합 지원(JSON 문자열 간/간 베이스64)
Gson 1.6에는 로우 레벨 스트리밍 API와 잭슨보다 빠른 새로운 파서가 포함되어 있습니다.
위의 답변에 추가.대소문자를 구분하지 않는 것이 중요한 경우 Jackson을 사용합니다.Gson은 키 이름의 대소문자를 구분하지 않지만 Jackson은 대소문자를 구분하지 않습니다.
다음은 관련 링크 2개입니다.
(아니오) Gson에서 대소문자를 구분하는 지원: GSON: Json에서 대소문자를 구분하는 요소를 얻는 방법
Jackson https://gist.github.com/electrum/1260489에서 대소문자를 구분하는 지원
GSon은 JAXB를 지원하지 않는 것 같습니다.JAXB 주석 클래스를 사용하여 JSON 메시지를 만들거나 처리함으로써 스프링 MVC를 사용하여 동일한 클래스를 공유하여 Restful Web Service 인터페이스를 만들 수 있습니다.
언급URL : https://stackoverflow.com/questions/2378402/jackson-vs-gson
'programing' 카테고리의 다른 글
Vuex 스토어 변경으로 렌더 새로 고침을 트리거하는 방법 (0) | 2022.09.03 |
---|---|
Vuex: 정의되지 않은 속성 '$store'를 읽을 수 없습니다. (0) | 2022.09.03 |
구조체 배열 끝에 빈 중괄호 '{ }'가 필요한 이유는 무엇입니까? (0) | 2022.09.01 |
vuejs의 Axios에서 계산된 속성을 자동으로 새로 고치는 방법 (0) | 2022.09.01 |
어떻게 목록의 자바에 있는 모든 요소들을 인쇄할? (0) | 2022.09.01 |