Jackson Library

이태곤·2024년 2월 11일
0

CS

목록 보기
20/23
  • Jackson: Java에서 JSON 데이터를 처리하기 위한 강력한 라이브러리로, 객체 -> JSON / JSON -> 객체로 쉽게 변환할 수 있다.

    • JsonNode: Jackson 라이브러리에 의해 제공되는 클래스로 JSON 객체를 나타낸다.
    • ObjectMapper: Jackson 라이브러리의 ObjectMapper 인스턴스로, JSON 데이터를 자바 객체로 매핑하는 데 사용된다.
    • readTree 메소드는 주어진 JSON 내용 문자열에서 JSON 내용을 읽고, JSON 구조의 트리 표현(JsonNode)을 만든다.
  • 객체 -> JSON 문자열

    public class Person {
        private String name;
        private int age;
        // Getters and setters
    }
    
    ObjectMapper objectMapper = new ObjectMapper();
    Person person = new Person("John Doe", 30);
    String json = objectMapper.writeValueAsString(person);
  • JSON 문자열 -> 객체

    String json = "{\"name\":\"John Doe\",\"age\":30}";
    
    ObjectMapper objectMapper = new ObjectMapper();
    Person person = objectMapper.readValue(json, Person.class);
  • JSON Parsing

    JsonNode rootNode = objectMapper.readTree(response); // 문자열을 JsonNode로 변환
    
                String token_type = rootNode.path("token_type").asText(); // path 메소드를 이용하여 키에 해당하는 값을 가져옴 (없으면 빈 문자열 반환, NullPointer 방지)
                long expires_in = rootNode.path("expires_in").asLong();
                String refresh_token = rootNode.path("refresh_token").asText();
                boolean success = rootNode.path("success").asBoolean();
                String access_token = rootNode.path("access_token").asText();
    • 장점
    1. JSON 구조를 객체로 매핑하여 탐색하기 쉽다.
      • JsonNode의 path 메소드를 사용하여 JSON 데이터의 특정 키에 해당하는 값을 쉽게 추출할 수 있다.
    2. 타입 변환을 자동으로 처리한다. (asText, asLong, asBoolean 등)
    3. JSON 키가 존재하지 않을 경우 기본값을 제공하여 NullPointerException을 방지한다.
  • 문자열 split 메소드 사용

    String[] split = response.split(",");
    
            String token_type = split[0].split(":")[1];
            String expires_in = split[1].split(":")[1];
            String refresh_token = split[2].split(":")[1];
            String success = split[4].split(":")[1];
            String access_token = split[5].split(":")[1];
    • 문제점
    1. JSON 구조가 복잡해지면 관리하기 어렵다.
    2. 타입 변환을 수동으로 처리해야 한다.
    3. JSON 키가 없을 경우 예외 처리가 필요하다.
    4. 유효하지 않은 JSON 형식의 문자열에서는 오류가 발생하기 쉽다.

2개의 댓글

comment-user-thumbnail
2024년 2월 12일

빌리진 - 마이클 잭슨 강추드립니다.

1개의 답글