
JAVA에서 Json을 간편하게 VO에 담을 수 있는
Gson과 Jackson 라이브러리를 소개하겠습니다.
목차
1. Gson과 Jackson이란? 2. Gson과 Jackson 차이 3. 라이브러리 추가 4. Json to VO 파싱 5. 그외 이슈사항 |
1. Gson과 Jackson이란?
Jackson
Json뿐 아니라 XML/YAML/CVS 등 다양한 형식의 데이터를 지원하는 라이브러리입니다.
스트림 방식으로 속도가 빠르며 유연해 다양한 third party 데이터 타입을 지원합니다.
Gson
Gson은 Java Object를 Json 표현으로 변환하는 데 사용할 수 있는 Java 라이브러리로
Json 문자열을 동등한 Java객체로 변환하는 데 사용할 수 있습니다.
Gson은 구글에서 만들었으며, 가벼운 데이터를 처리할 때 성능이 좋다고 합니다.
2. Gson과 Jackson차이
Jackson과 Gson 모두 Java로 Json 데이터 바인딩 지원을 제공하는 완전한 라이브러리입니다.
Jackson은 Spring 프레임 워크에 내장되어 있지만 Gson은 pom.xml에 따로 추가해 줘야 합니다.
3. 라이브러리 추가
Maven
Jackson
Spring 프레임 워크가 아닌 경우는 내장되어 있지 않습니다.
jackson-core 및 jackson-annotation 라이브러리의 의존성을 포함하기 때문에
pom.xml 파일에 아래와 같이 dependency를 추가합니다.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
GSON
Gson 역시 pom.xml에 따로 추가해 줘야 합니다.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.7</version>
</dependency>
Gradle
Jackson
implementation "com.fasterxml.jackson.core:jackson-core:2.9.9"
implementation "com.fasterxml.jackson.core:jackson-annotations:2.9.9"
implementation "com.fasterxml.jackson.core:jackson-databind:2.9.9"
implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.9"
GSON
dependencies {
implementation 'com.google.code.gson:gson:2.8.7'
}
직접추가
Jackson
jar파일을 직접 다운로드할 수 있는 경로는 다음과 같습니다.
jackson-core.jar : https://github.com/FasterXML/jackson-core/wiki
jackson-annotations.jar : https://github.com/FasterXML/jackson-annotations/wiki
jackson-databind.jar : https://github.com/FasterXML/jackson-databind/wiki
GSON
https://search.maven.org/artifact/com.google.code.gson/gson/2.8.7/jar
위 링크에서 jar를 직접 다운로드하여서, 라이브러리에 추가합니다.
4. Json to VO 파싱
Json Data 예시
{"name":"name01", "id":"id01"}
VO 예시
public class TestVo {
private String name;
private String id;
}
Jackson
Gson은 pom.xml에 따로 추가해 줘야 합니다.
ObjectMapper mapper = new ObjectMapper();
// JSON 파일에서 읽기
TestVO testVO = mapper.readValue(new File("src/resources/data.json"), TestVO.class);
// String 으로 읽기
TestVO testVO = mapper.readValue("{\"id\":\"a001\", \"name\":홍길동}", TestVO.class);
Gson
Json 데이터가 testVO의 user, id에 각각 매핑됩니다.
// Json 문자열
String jsonStr = "{\"id\":a001,\"name\":\"홍길동\"}";
// Gson 객체 생성
Gson gson = new Gson();
// Json 문자열 -> VO 객체
TestVO testVO = gson.fromJson(jsonStr, TestVO.class);
5. 그외 이슈사항
아시아에서 가장 많이 다운로드 된 취약한 OSS 구성요소 5개 중
Jackson이 1위를 하였습니다.
취약점과 대응방안도 작성되어 있으니
프로젝트에 도움이 되시면 좋겠습니다.
https://www.osckorea.com/post/asiaeseo-gajang-manhi-daunrodeu-doen-cwiyaghan-oss-guseongyoso-5gae
OSC Korea midia
Sonatype의 소프트웨어 공급망 현황 보고서에 따르면 지난 2년 동안 오픈 소스 구성 요소 릴리스 공급은 75% 증가했고, 다운로드 요청은 전년 대비 68% 증가했습니다. 하지만 오픈소스 관련 침
www.osckorea.com
이상으로 Java에서 Gson과 Jackson을 이용해 VO에 파싱하는 방법에 대해서 간략하게 알아보았습니다.
앞으로도 작업하면서 새롭게 알아가는 부분에 대해서 또 공유 드리겠습니다.
<참고사이트>
https://tychejin.tistory.com/134
'IT 개발 > 개념정리' 카테고리의 다른 글
jQuery id값으로 data() 값 가져오기 (0) | 2023.01.30 |
---|---|
[Oracle] 코멘트로 테이블, 컬럼 찾기 (0) | 2023.01.20 |
[Oracle] LISTAGG 여러 행을 하나의 컬럼에 가져오기 (2) | 2023.01.19 |
[JAVA] POST방식 JSON데이터 보내기(with GSON) (0) | 2023.01.13 |
[네트워크] GET과 POST의 차이 (0) | 2023.01.12 |
댓글