2023-05-09
1. 방법
사용 라이브러리 : Jackson: https://github.com/FasterXML/jackson
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.15.3'
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core
implementation 'com.fasterxml.jackson.core:jackson-core:2.15.3'
예시 json
{
"name": "John Doe",
"age": 30,
"email": "johndoe@example.com"
}
예시 DTO
public class User {
private String name;
private int age;
private String email;
// 생성자, getter, setter, toString 등의 메서드 생략
}
JSON 문자열을 DTO 객체로 변환하기 위해서는, 먼저 JSON 문자열을 파싱하여 JsonNode 객체로 변환해야 합니다. 이를 위해서는 ObjectMapper 클래스를 사용하면 되며, JsonNode 객체에서 필요한 필드 값을 가져와서 DTO 객체에 매핑합니다. 이를 위해서는 readValue 메서드를 사용하면 됩니다.
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Example {
public static void main(String[] args) throws Exception {
String jsonStr = "{\"name\":\"John Doe\",\"age\":30,\"email\":\"johndoe@example.com\"}";
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(jsonStr);
User user = objectMapper.treeToValue(jsonNode, User.class);
System.out.println(user.toString());
}
}
메인 이미지 출처 : 사진: Unsplash의Nigel Hoare