Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Jackson에서 JSON 파서(JsonParser)의 기본 설정을 확인하는 방법

Jackson 라이브러리의 JSON 파서(JsonParser)가 가지는 모든 기본 설정은 JsonParser.Feature 열거형(enum)으로 표현할 수 있습니다. JsonParser.Feature.values() 메서드를 호출하면 JSON 파서에서 사용 가능한 모든 기능(Feature) 목록을 가져올 수 있으며, 특정 파서에서 해당 기능이 활성화(enabled)되어 있는지 비활성화(disabled)되어 있는지는 JsonParser의 isEnabled() 메서드를 통해 확인할 수 있습니다.

문법(Syntax)

public static enum JsonParser.Feature extends Enum<JsonParser.Feature>

예제 코드

아래 예제에서는 JSON 문자열을 파싱하기 위해 JsonFactory로부터 JsonParser를 생성한 뒤, 모든 Feature를 순회하면서 각각의 활성화 여부를 출력합니다.

import com.fasterxml.jackson.core.*;
import java.io.*;
public class JsonParserSettingsTest {
    public static void main(String[] args) throws IOException {
        String json = "[{\"name\":\"Adithya\", \"age\":\"30\"}," + "{\"name\":\"Ravi\", \"age\":\"35\"}]";
        JsonFactory jsonFactory = new JsonFactory();
        JsonParser jsonParser = jsonFactory.createParser(json);
        for(JsonParser.Feature feature : JsonParser.Feature.values()) {
            System.out.println(feature.name() + ":" + jsonParser.isEnabled(feature));
        }
    }
}

실행 결과

AUTO_CLOSE_SOURCE:true
ALLOW_COMMENTS:false
ALLOW_YAML_COMMENTS:false
ALLOW_UNQUOTED_FIELD_NAMES:false
ALLOW_SINGLE_QUOTES:false
ALLOW_UNQUOTED_CONTROL_CHARS:false
ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER:false
ALLOW_NUMERIC_LEADING_ZEROS:false
ALLOW_NON_NUMERIC_NUMBERS:false
ALLOW_MISSING_VALUES:false
ALLOW_TRAILING_COMMA:false
STRICT_DUPLICATE_DETECTION:false
IGNORE_UNDEFINED:false
INCLUDE_SOURCE_IN_LOCATION:true

주요 설정 항목 설명

  • AUTO_CLOSE_SOURCE: 파서가 닫힐 때 자동으로 입력 소스도 함께 닫습니다.
  • ALLOW_COMMENTS: JSON 내 주석 사용을 허용합니다.
  • ALLOW_UNQUOTED_FIELD_NAMES: 따옴표 없는 필드 이름을 허용합니다.
  • ALLOW_SINGLE_QUOTES: 작은따옴표(') 사용을 허용합니다.
  • ALLOW_TRAILING_COMMA: 마지막 요소 뒤의 쉼표를 허용합니다.
  • STRICT_DUPLICATE_DETECTION: 중복된 필드 이름을 엄격하게 검사합니다.

이처럼 isEnabled() 메서드와 Feature 열거형을 조합하면 현재 파서의 동작 설정을 손쉽게 진단하거나 디버깅할 수 있어, JSON 처리 로직을 세밀하게 제어해야 하는 상황에서 매우 유용합니다.