JsonPathReader

JsonPathReader (JsonPath 리더)

JSON 레코드를 파싱하고 각 JSON 객체에 대해 사용자가 정의한 JSON Path을 평가하는 Record Reader예요. 사용자 정의 속성으로 JSON에서 추출할 필드를 지정해 레코드 필드를 구성해요.

출처: 문서

본문

설명

JSON 레코드를 파싱하고 각 JSON 객체에 대해 사용자가 정의한 JSON Path를 평가해요. 이 리더는 각 레코드가 잘 구성된(well-formed) JSON일 것으로 기대하지만, FlowFile의 콘텐츠는 흔한 'JSON-per-line' 형식처럼 잘 구성된 JSON 배열 또는 JSON 객체(사이에 선택적 공백 포함)가 여럿 이어진 형태일 수 있어요. 배열을 만나면 그 배열의 각 요소가 별도의 레코드로 처리돼요. 사용자 정의 속성은 레코드의 필드를 형성하기 위해 JSON에서 추출해야 하는 필드를 정의해요. JSONPath를 통해 추출되지 않은 JSON 필드는 JSON Records에 반환되지 않아요.

태그

json, jsonpath, parser, reader, record

속성 (Properties)

아래 목록에서 필수 속성은 별표(*)로 표시했어요. 그 외 속성은 선택 사항이고, 표에는 기본값과 NiFi Expression Language 지원 여부도 함께 나와 있어요.

표시 이름 API 이름 기본값 허용 값 설명
Allow Comments * Allow Comments false true false JSON 문서를 파싱할 때 주석을 허용할지 여부예요.
Date Format Date Format Date 필드를 읽고 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 Date 필드는 epoch(1970년 1월 1일 자정 GMT) 이후 밀리초 수로 간주돼요. 지정하면 값은 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요(예: 두 자리 월, 두 자리 일, 네 자리 연도를 /로 구분한 MM/dd/yyyy, 예: 01/01/2017).
Max String Length * Max String Length 20 MB JSON 문서를 파싱할 때 문자열 값의 허용 최대 길이예요.
Schema Access Strategy * Schema Access Strategy infer-schema 'Schema Name' Property, 'Schema Text' Property, Schema Reference Reader, Infer Schema 데이터 해석에 사용할 스키마를 얻는 방법을 지정해요.
Schema Branch Schema Branch Schema Registry 속성에서 스키마를 조회할 때 사용할 브랜치 이름을 지정해요. 선택한 Schema Registry가 브랜칭을 지원하지 않으면 이 값은 무시돼요.
Schema Name Schema Name ${schema.name} Schema Registry 속성에서 조회할 스키마의 이름을 지정해요.
Schema Reference Reader * Schema Reference Reader Schema Reference Identifier를 결정하기 위해 FlowFile 속성 또는 콘텐츠를 읽는 책임이 있는 서비스 구현체예요.
Schema Registry Schema Registry Schema Registry에 사용할 Controller Service를 지정해요.
Schema Text Schema Text ${avro.schema} Avro 형식 스키마의 텍스트예요.
Schema Version Schema Version Schema Registry에서 조회할 스키마의 버전을 지정해요. 지정하지 않으면 스키마의 최신 버전을 가져와요.
Time Format Time Format Time 필드를 읽고 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 Time 필드는 epoch 이후 밀리초 수로 간주돼요. 지정하면 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요(예: 24시간 형식 두 자리 시, 두 자리 분, 두 자리 초를 :로 구분한 HH:mm:ss, 예: 18:04:15).
Timestamp Format Timestamp Format Timestamp 필드를 읽고 쓸 때 사용할 형식을 지정해요. 지정하지 않으면 millisecond since epoch으로 간주돼요. 지정하면 Java java.time.format.DateTimeFormatter 형식과 일치해야 해요(예: MM/dd/yyyy HH:mm:ss, 예: 01/01/2017 18:04:15).

상태 관리

이 컴포넌트는 상태를 저장하지 않아요.

제한 사항 (Restricted)

이 컴포넌트는 제한되지 않아요.

시스템 리소스 고려 사항

이 컴포넌트는 시스템 리소스 고려 사항을 지정하지 않아요.

더 알아보기 (Learn more)