profile
엔지니어가 되는 그 날 까지!
post-thumbnail

[Java] Json을 Java 객체로 변환하는 방법(Gson, Jackson, JSON-SIMPLE)

정리하게 된 배경 TMI~ API를 사용하게 되면 많이 다루게 되는 데이터 형식 중 하나가 바로 json이다. 개발중인 서비스에서도 연계된 타 서비스의 데이터를 API로 받아오게 되는데, 대용량일 시 json 문자열을 Entity 객체로 파싱하며 성능 이슈가 있는 듯하여 현재 사용중인 라이브러리와 그 외에 대중적으로 사용되는 라이브러리의 성능 차이를 검토하게 되었다. JSON 라이브러리 종류 > JAVA - GSON , JSON-Simple, Jackson 무엇을 사용해야 할까? GSON Jackson JSON-SIMPLE 고코더님이 작성한 포스트에서 대용량에서는 Jackson이 저용량에서는 GSON이 가장 성능이 좋았다는 평이 있다. 현 프로젝트에서는 GSON을 사용하고 있는데, 우리는 큰 파일과 작은 파일을 모두 다루고 있어서 라이브러리 선택이 잘못됐다는 것을 깨달았다. 그냥 JSO

2023년 5월 27일
·
0개의 댓글
·
post-thumbnail

[Gson] Gson.fromJson(Object) Empty String / TypeCasting 처리하기

코딩하게 된 배경과 삽질 스토리 TMI~ 업무를 하다가 API에서 받아온 데이터를 그대로 DB 테이블에 Merge해야하는 케이스가 생겼다. 처음에는 적재해야 하는 Entity의 모든 필드를 String 타입으로 선언하고, Gson을 이용해 json 문자열을 바로 List로 변환해주는 것 까지 완료했다. 이때까지 단위테스트 결과는 전혀 문제가 없어서 순조롭게 진행되는 구나 했는데, 아뿔싸. mybatis로 쿼리를 실행하니 빈 문자열("")로 들어온 필드의 DB 자료형이 decimal이거나 double일 때 형식이 맞지 않아 에러가 발생했다. 그래서 Entity에서 DB의 자료형에 맞게 선언을 바꿔줬더니 이번엔 Gson에서 List로 변환하면서 NumberFormatException이 발생한다. 열심히 AttributeConverter를 구현하여 JPA @Converter 를 지정해줬는데도 제대로 작동하지 않았다. 회사

2023년 1월 19일
·
0개의 댓글
·