* ObjectMapper
Jackson 라이브러리에서 제공하는 클래스로
JSON 데이터와 Java 객체 간의 직렬화 및 역직렬화에 사용. ( Java 객체 ↔ JSON )
ex) User 클래스
public class User {
private String name;
private int age;
// 생성자와 getter/setter 필수
public User() {}
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() { return name; }
public int getAge() { return age; }
public void setName(String name) { this.name = name; }
public void setAge(int age) { this.age = age; }
}
ex) UserDTO
public class UserDTO {
private String name;
public UserDTO() {}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
ex) user, objectMapper 인스턴스
User user = new User("phyho", 10);
ObjectMapper objectMapper = new ObjectMapper();
Java 객체 --> JSON 문자열
writeValueAsString( Object )
String jsonString = objectMapper.writeValueAsString(user);
System.out.println(jsonString);
// {"name":"phyho","age":10}
출력결과 - writerWithDefaultPrettyPrinter()
objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(user)
{
"name" : "phyho",
"age" : 10
}
JSON 문자열 --> Java 객체
readValue( String/File, Class )
User user = mapper.readValue(jsonString, User.class);
// String jsonString = {"name":"phyho","age":10}
System.out.println(user.getName() + & + user.getAge());
// phyho & 10
* JsonNode
JSON 데이터를 트리 구조로 표현.
- get(String fieldName) : 지정된 필드 이름의 값을 반환
- asText(), asInt(), asBoolean(), asDouble() : 노드의 값을 해당 타입으로 반환
- put(String fieldName, String value) : JSON 객체의 필드를 업데이트
JSON 문자열-->JsonNode
readTree( String )
JsonNode jsonNode = mapper.readTree(jsonString);
// String jsonString = {"name":"phyho","age":10}
System.out.println(jsonNode.get("name").asText());
// phyho
System.out.println(jsonNode.toString());
// {"name":"phyho","age":10}
출력결과 - toPrettyString()
jsonNode.toPrettyString();
{
"name" : "phyho",
"age" : 10
}
JsonNode --> Java 객체
treeToValue(JsonNode, Class)
User user = mapper.treeToValue(node, User.class);
System.out.println(user.getName());
// phyho
Java 객체 --> JsonNode
valueToTree( Object )
JsonNode jsonNode = mapper.valueToTree(user);
System.out.println(jsonNode.toPrettyString());
객체 변환 (Java 객체 --> DTO 객체)
convertValue( Object, Class )
UserDTO dto = mapper.convertValue(user, UserDTO.class);
System.out.println(dto.getName());
// phyho
https://velog.io/@thisyoon97/ObjectMapper
ObjectMapper에 대해 알아보자
Jackson 라이브러리의 ObjectMapper란, Java 객체를 JSON으로 또는 반대로 JSON을 Java 객체로 역직렬화하는 도구이다. (주로 JSON에 대해 사용되지만 추가 모듈을 설치하면 XML, CSV 등 다른 데이터 형식도 처
velog.io
'Java > 공부공부' 카테고리의 다른 글
[JAVA] 타입 소거 (Type Erasure) (0) | 2025.04.15 |
---|---|
[Java] ObjectMapper (2) TypeReference, 설정메서드, 어노테이션 (0) | 2025.04.10 |
[Java] "".equals(null) (equals 메서드) (0) | 2025.03.26 |
[JAVA] Thread.sleep() (0) | 2024.11.27 |
[JAVA] port연결 확인 스케줄러 (ScheduledExecutorService, CountDownLatch) (0) | 2024.11.25 |