문제의 발단
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));
}
'Programming > Spring' 카테고리의 다른 글
[스프링/Spring] @SpringBootApplication 어노테이션을 완벽하게 파헤쳐보자 (0) | 2023.01.09 |
---|---|
[spring/java] JSON 안의 JSON 리스트 객체로 파싱받기 (0) | 2022.07.31 |
[Mac/Intellij] Spring + mariaDB 연동 프로젝트 만들기 & 환경셋팅 (0) | 2022.07.06 |
[Spring/스프링] 롤링페이퍼(게시판) 프로젝트 2. Repository 생성 (0) | 2022.03.23 |
[Spring/스프링] 롤링페이퍼(게시판) 프로젝트 1. Entity 생성 (0) | 2022.03.22 |