728x90
JSON을 파라미터로 받아서 처리해야하는 API가 있었는데
정책 상, @RequestBody를 쓸 수 없는 상황이었다........
@ApiParam, @RequestParam 등등 별의 별 짓을 다 해보다가 찾아낸 방법. 겁나 단순해서 허무했던;;;
그냥 JSON형식의 모든 항목 값을 String으로 받아서 JSON으로 파싱해서 쓰면 되는거였다ㅠㅠ
매우 간단...........
이런 형식의 JSON을 JSON.Stringify(string)해서 받으면 된다 !
[
{
"yyyy" : "false",
"mm" : "08",
"dd" : "test"
},
{
"yyyy" : "true",
"mm" : "12",
"dd" : "test 2"
}
]
반응형
package com.test;
import lombok.Data;
@Data
public class TodayVO {
public String yyyy;
public String mm;
public String dd;
}
728x90
jsonString을 그대로 받아서, List<DTO> 형식으로 사용하는 예제이다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
String jsonString = "[{\"yyyy\" : \"false\", \"mm\" : \"08\", \"dd\" : \"test\"}, {\"yyyy\" : \"true\", \"mm\" : \"12\", \"dd\" : \"test 2\"}]";
ObjectMapper mapper = new ObjectMapper();
List<TodayVO> voList = new ArrayList<>();
voList = Arrays.asList(mapper.readValue(jsonString, TodayVO[].class));
728x90
반응형
'Java' 카테고리의 다른 글
VS Code 한국어 설정하기 (0) | 2024.02.15 |
---|---|
오라클 테이블/컬럼 정보 조회 (0) | 2023.10.10 |
JAVA JAXB Marshaller / Unmarshaller (0) | 2023.09.14 |
STS 설치하기 (0) | 2023.03.09 |
599_npm install -g @vue/cli 에러 (0) | 2022.07.01 |