일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- json string
- 방송대
- 오블완
- 정처기
- window11 Education
- snake case
- 자바
- window10
- 소비통장
- 취성패
- 취업
- git pull --rebase
- vmware workstation player
- Spring Boot
- github
- 런던뮤지컬
- window11
- ObjectMapper
- java
- window10 Education
- camel case
- git
- 티스토리챌린지
- git 설정
- 방통대
- git pull
- IAMPORT
- 아임포트
- 윈도우10 Education
- 운영체제
- Today
- Total
솔솔 개발블로그
JAVA 객체를 camel case나 snake case로 변경 (2) 본문
지난 글에서는 camel case로 받고, snake case json String으로 전달하는 방법에 대해 작성했다면
이번 글은 camel case로 받고 snake case로 전달하는 방법을 작성하려고 한다.
물론 반대로 가능하다.
1편 보러가기
2021.12.29 - [프로그래밍/SPRING 입문] - JAVA 객체를 camel case나 snake case로 변경 (1)
JAVA 객체를 camel case나 snake case로 변경 (1)
Spring Boot에서 클라이언트로부터 json 형식으로 데이터를 주고받을 때, key의 naming을 설정해야 한다. 보통 초기에 어떤 형식을 사용할 것인지 정하고 시작하기도 하지만 개발을 하다보면 형식을 자
aandi.tistory.com
이번에도 ObjectMapper 클래스를 사용한다.
ObjectMapper에는 readValue() 메소드가 존재한다.
첫번째 인자로 json 문자열을 넣어주고, 두 번째 인자로 변환할 클래스를 넣어주면 된다.
1편에서 다뤘던 것에서 한 번 더 변환해주는 것이다.
만약 코드가 이해가 잘 안된다면 1편을 먼저 보고 와보자!
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy::class)
public class User{
private String userId;
private String userName;
}
//요청
[POST] localhost:8080/test
application/json
{
"userName" : "testname",
"userId" : "testid"
}
//코드
package com.example.excepTest.JsonTest;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class JsonDTO {
private String userName;
private String userId;
}
package com.example.excepTest.JsonTest;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import lombok.SneakyThrows;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class JsonController {
@PostMapping("/test")
@SneakyThrows
public Object test(@RequestBody JsonDTO req) {
System.out.println(req); //JsonDTO(userName=testname, userId=testid)
ObjectMapper objectMapper = new ObjectMapper()
.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
return objectMapper.readValue(objectMapper.writeValueAsString(req), Object.class);
}
}
맨 아래 코드를 보면
return objectMapper.readValue(objectMapper.writeValueAsString(req), Object.class);
readValue() 메소드의 첫번째 인자로 objectMapper.writeValueAsString(req) 를 넣어줬다.
camel case로 받은 객체를 snake case json 문자열로 변환한 값이다.
그리고 이 json String을 Object 클래스로 변환해서 응답해준다.
| 결과
'프로그래밍 > SPRING 입문' 카테고리의 다른 글
[spring boot] java Spring boot로 아임포트(iamport) 결제 구현 (0) | 2022.01.08 |
---|---|
[아임포트] 아임포트(iamport) 결제 연동 (1) - HTML/JAVASCRIPT (3) | 2022.01.03 |
JAVA 객체를 camel case나 snake case로 변경 (1) (0) | 2021.12.29 |