개발이야기
Jackson Json - json name을 snake case로 바꾸기
준호씨
2020. 8. 1. 01:31
반응형
아래와 같은 Person 클래스가 있습니다. (편의상 lombok을 사용합니다.)
@Data
@Builder
public class Person {
private String firstName;
private String lastName;
private String byName;
private String phoneNumber;
}
person 인스턴스를 만들고 ObjectMapper로 json string을 출력합니다.
@SpringBootTest
public class MyTest {
@Autowired
private ObjectMapper mapper;
@Test
public void test() throws JsonProcessingException {
Person person = Person.builder()
.firstName("Michael")
.lastName("Jordan")
.byName("Air Jordan")
.build();
System.out.println(mapper.writeValueAsString(person));
}
}
아래처럼 json name부분이 camel case로 나옵니다.
{"firstName":"Michael","lastName":"Jordan","byName":"Air Jordan","phoneNumber":null}
firstName처럼 첫 글자가 소문자고 이후 단어부터는 첫 글자가 대문자로 나오는 게 camel case입니다. 낙타의 등 모양 같다고 camel case라고 합니다.
그런데 만약 first_name처럼 사이사이에 underbar(_)가 들어가는 snake case방식으로 출력하고 싶을 수 있습니다. 그럴 때는 아래처럼
@Data
@Builder
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class Person {
private String firstName;
private String lastName;
private String byName;
private String phoneNumber;
}
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)를 붙여주면 됩니다.
json name이 first_name으로 snake case로 나옵니다.
{"first_name":"Michael","last_name":"Jordan","by_name":"Air Jordan","phone_number":null}
springboot 프로젝트인 경우 application.properties에 아래처럼 설정하면 됩니다.
spring.jackson.property-naming-strategy=SNAKE_CASE
반응형