스트링 형식을 DTO로 매핑하기
그리고 DTO를 json스트링으로 변환하기
UserDTO.class
public class UserDTO {
String userID;
String userName;
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
변환소스
package test2.mapper;
import java.util.Arrays;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import com.fasterxml.jackson.databind.ObjectMapper;
import test2.entity.dto.UserDTO;
@SpringBootTest
public class StringToDto {
@Test
public void stringToJsonToDto() {
String str = "{\"userID\":\"user01\", \"userName\":\"홍길동\"}";
String strList = "[{\"userID\":\"user01\", \"userName\":\"홍길동\"},{\"userID\":\"user02\", \"userName\":\"홍길순\"}]";
ObjectMapper mapper = new ObjectMapper();
try {
// 1. 스트링에서 DTO로 매핑하기
UserDTO dto = mapper.readValue(str, UserDTO.class);
System.out.println(dto);
// UserDTO(userID=user01, userName=홍길동)
// 2. 스트링에서 DTO LIST로 매핑하기
List<UserDTO> dtos = Arrays.asList(mapper.readValue(strList, UserDTO[].class));
System.out.println(dtos.size() + " : " +dtos);
// 2 : [UserDTO(userID=user01, userName=홍길동), UserDTO(userID=user02, userName=홍길순)]
// 객체를 JSON 스트링으로 변환하기
String jsonStr = mapper.writeValueAsString(dtos);
System.out.println(jsonStr);
// [{"userID":"user01","userName":"홍길동"},{"userID":"user02","userName":"홍길순"}]
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
메이븐에 spring-boot-starter-web을 포함하거나
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
또는 jackson을 포함한다.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>