Programming/Spring
[Spring/Java/Jackson] JSON List를 문자열(String)으로 변환
예민한고라니
2022. 7. 31. 00:35
문제의 발단
API 개발 중 다음과 같은 JSON을 받아와 파싱하여, 그중 JSON List 인 runningData 전체를 문자열(String)으로 저장할 필요가 생겼다.
파싱과 관련된 자세한 내용을 보고싶다면 여기를 클릭하세요!
{
"userId" : long(아이디번호) ,
"runningId" :long(아이디번호) ,
"duration" : int(지속시간),
"runningData" : [
{
"latitude" : double(경도),
"longitude" : double(위도),
"altitude" : double(고도),
"speed": double(속도),
"timestamp" : DateTime(시간)
},{ … }
]
}
여기서는 Java가 json을 편리하게 다룰수 있도록 도와주는 Jackson 라이브러리를 사용했다
소스 코드 (runningService.class)
- 그저 간단하게 ObjectMapper 객체를 하나 만들어주고, writeValueAsString 메소드를 사용하면 된다.
- 이때 해당 메소드와 해당 메소드를 참조하는 모든 메소드에 JsonProcessingException 예외를 던져주어야한다.
@Transactional
public void finishRunning(long runningId, long memberId, List<RunningRowData> rowData) throws JsonProcessingException {
Running running = runningRepository.findOne(runningId);
Member member = memberRepository.findOne(memberId);
ObjectMapper mapper = new ObjectMapper();
running.setRowData(mapper.writeValueAsString(rowData));
}