Java

JAVA JsonString to VO

우오우어아오앙 2024. 8. 1. 09:52
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