[java] Jackson의 JsonNode 클래스에 대해 설명해주세요.

Jackson의 JsonNode 클래스는 JSON 데이터를 나타내는 불변의 트리 구조를 제공하는 클래스입니다. 이 클래스를 사용하여 JSON 데이터를 생성, 읽기, 수정 및 쿼리할 수 있습니다.

JsonNode의 기능

JsonNode 클래스는 다음과 같은 기능을 제공합니다:

1. JSON 데이터 생성 및 읽기

JsonNode를 사용하여 JSON 데이터를 생성하거나, JSON 데이터에서 필요한 정보를 읽을 수 있습니다.

ObjectMapper objectMapper = new ObjectMapper();

// JSON 데이터 생성
JsonNode jsonNode = objectMapper.createObjectNode();
((ObjectNode) jsonNode).put("name", "John");
((ObjectNode) jsonNode).put("age", 30);

// JSON 데이터 읽기
String name = jsonNode.get("name").asText();
int age = jsonNode.get("age").asInt();

2. JSON 데이터 수정

JsonNode를 사용하여 JSON 데이터의 값을 수정할 수 있습니다. 예를 들어, put 메서드를 사용하여 새로운 속성을 추가하거나, remove 메서드를 사용하여 기존의 속성을 제거할 수 있습니다.

ObjectMapper objectMapper = new ObjectMapper();

// JSON 데이터 생성
JsonNode jsonNode = objectMapper.createObjectNode();
((ObjectNode) jsonNode).put("name", "John");
((ObjectNode) jsonNode).put("age", 30);

// JSON 데이터 수정
((ObjectNode) jsonNode).put("city", "New York");
((ObjectNode) jsonNode).remove("age");

3. JSON 데이터 검색 및 쿼리

JsonNode를 사용하여 JSON 데이터를 검색하고, 필요한 정보를 쿼리할 수 있습니다. 예를 들어, get 메서드를 사용하여 특정 속성의 값을 가져올 수 있습니다.

ObjectMapper objectMapper = new ObjectMapper();

// JSON 데이터 생성
String json = "{\"name\":\"John\", \"age\":30}";

// JSON 데이터 파싱
JsonNode jsonNode = objectMapper.readTree(json);

// JSON 데이터 쿼리
JsonNode nameNode = jsonNode.get("name");
String name = nameNode.asText();

JsonNode의 활용

JsonNode 클래스는 Jackson 라이브러리의 핵심 기능 중 하나로, JSON 데이터를 쉽게 다룰 수 있는 유용한 도구입니다. 다양한 JSON 데이터 작업을 필요로 하는 경우에 JsonNode 클래스를 사용하여 JSON 데이터를 처리할 수 있습니다.

참고 자료