반응형
SpringBoot을 사용하여 개발된 REST API에서 Java Object에 매핑할 때 JSON payload 필드를 대소문자 구분 없이 만듭니다.
저는 스프링부트 어플리케이션을 이용하여 개발한 REST API를 작업하고 있습니다.여기서는 Java Object에 매핑할 때 payload(JSON)의 필드를 대소문자 구분 없이 만들고 싶습니다.아래는 제 코드입니다.
페이로드
{"limit":1,"name":"MATTHEW PHILLIPS"}
요청 개체
private String limit;
private String name;
public String getLimit() {
return limit;
}
public void setLimit(String limit) {
this.limit = limit;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
JSON 페이로드를 java Object에 직접 매핑합니다.@RequestBody
스프링 주석.여기서 제 질문은 java Object를 어떻게 하면 케이스를 무시하는 필드에 매핑할 수 있을까 하는 것입니다.
안녕, 라케시
스프링부트 애플리케이션이라면 이 애플리케이션을 사용할 수 있습니다.application.properties
파일:spring.jackson.mapper.accept_case_insensitive_properties=true
또는 yaml을 사용하는 경우:
spring:
jackson:
mapper:
accept_case_insensitive_properties: true
최근 주석 구성을 통해 해결 방법을 찾았습니다.
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
@Configuration
public class Config {
@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
return mapper;
}
}
저는 이 종속성을 사용하고 있습니다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-jaxb-annotations</artifactId>
<version>2.6.5</version>
</dependency>
행운을 빌어요.
저에게 가장 간단한 솔루션은 com.fasterxml.jackson.notation을 사용하는 것이었습니다.my requestBody의 클래스 정의에 있는 JsonFormat 주석(2.5.0 spring-boot를 사용하고 있지만 더 빠른 xml 주석이므로 관련이 없을 수 있습니다):
@JsonFormat(with = {JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES})
언급URL : https://stackoverflow.com/questions/30924816/make-json-payload-fields-case-insensitive-when-mapping-to-java-object-in-rest-ap
반응형
'programing' 카테고리의 다른 글
XML을 java.util로 변환하는 방법지도와 그 반대? (0) | 2023.10.09 |
---|---|
MySql은 선택한 결과를 삽입합니다. (0) | 2023.10.09 |
LOAD DATA LOCAL INFILE 완료를 기다리는 방법 - Java (0) | 2023.10.09 |
입력에 초점이 맞추어져 있는지 확인하는 Javascript/jQuery (0) | 2023.10.09 |
ServletContext 리소스 [/WEB-INF/applicationContext.xml]을(를) 열 수 없습니다. (0) | 2023.10.09 |