Jackson library

In the Jackson library, the JsonNode class represents a node in a JSON tree. To extract a list (e.g., an array) from a JsonNode, you can use methods like get, elements(), or findValues. Here's how you can achieve this:

Example: Extracting a List from JsonNode

Given JSON:

{
  "names": ["Alice", "Bob", "Charlie"]
}

Java Code:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class JsonNodeExample {
    public static void main(String[] args) throws Exception {
        String jsonString = "{ \"names\": [\"Alice\", \"Bob\", \"Charlie\"] }";

        // Parse JSON
        ObjectMapper mapper = new ObjectMapper();
        JsonNode rootNode = mapper.readTree(jsonString);

        // Extract the "names" array as a JsonNode
        JsonNode namesNode = rootNode.get("names");

        // Convert JsonNode array to a List
        List<String> names = new ArrayList<>();
        if (namesNode.isArray()) {
            for (JsonNode nameNode : namesNode) {
                names.add(nameNode.asText());
            }
        }

        // Print the list
        System.out.println(names); // Output: [Alice, Bob, Charlie]
    }
}

Explanation

  1. Parse JSON: Use ObjectMapper.readTree to parse the JSON string into a JsonNode object.
  2. Access Array Node: Use rootNode.get("names") to get the JsonNode representing the array.
  3. Iterate and Convert: Check if the node is an array using isArray(). Iterate over its elements and convert each to the desired type (String in this case) using methods like asText().

Notes

  • Use asText(), asInt(), or asDouble() for type conversion.
  • Always check if the node is of the expected type (isArray, isTextual, etc.) to avoid runtime issues.

댓글

이 블로그의 인기 게시물

[Ubuntu] *.deb 파일 설치 방법

how to delete all issues on project in sentry, 센트리 이슈 삭제하기

Read a file in Java, 자바 파일 읽기

ssh-copy-id in ansible

React datetime range picker

Using the MinIO API via curl

How to change java version on gradle of flutter

Sparse output from sparse encoder

"Do you happen to"

Sort the distinct values by their count in descending order using the DataFrame API