tojson

지정한 필드의 값을 JSON 문자열로 변환합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행지원
분산 실행미지원

문법

tojson [output=STR] [FIELD [, FIELD ...]]

옵션

output=STR
JSON 문자열을 저장할 출력 필드 이름 (기본값: _json).

대상

FIELD
JSON으로 변환할 필드. 쉼표로 구분하여 여러 필드를 지정할 수 있습니다. 생략하면 레코드의 전체 필드를 변환합니다.

입력 필드

없음

출력 필드

필드타입설명
_json문자열JSON으로 변환된 문자열. output 옵션으로 필드 이름을 변경할 수 있습니다.

오류 코드

파싱 오류
오류 코드메시지설명
22300필드가 없습니다.필드 목록이 쉼표로 끝나 다음 필드명이 없는 경우
런타임 오류
오류 코드메시지설명
-Nesting too deep.변환 대상 값의 JSON 중첩 depth가 제한을 초과하는 경우. 쿼리가 오류로 중단됩니다. 제한은 REST API 기준 200 단계이며, 웹 콘솔에서는 JSON 구조에 따라 최대 198 단계까지 지원합니다.
-argument should be map, object array or collection, [클래스명]문자열·숫자·불리언·날짜·IP 주소·UUID·바이트 배열 등 지원되는 타입이 아닌 값이 포함된 경우. 쿼리가 오류로 중단됩니다.

설명

tojson 명령어는 지정한 필드의 값을 JSON 문자열로 변환하여 출력 필드에 할당합니다. 필드를 지정하지 않으면 레코드의 전체 필드를 JSON 객체로 변환합니다.

변환 결과는 output 옵션으로 지정한 필드에 저장됩니다. output을 지정하지 않으면 _json 필드에 저장됩니다.

필드를 지정한 경우 지정한 순서대로 JSON 객체의 키가 생성됩니다. 맵이나 배열처럼 값 안에 값이 중첩된 구조는 최대 200 단계까지 변환할 수 있으며, 이를 초과하면 오류로 쿼리가 중단됩니다. 200 단계는 REST API로 쿼리를 실행할 때 기준이며, 웹 콘솔에서 실행하면 결과를 표시하는 과정에서 제한이 더 엄격하게 적용되어 JSON 구조에 따라 최대 198 단계까지만 지원합니다.

사용 예

이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. 전체 레코드를 JSON으로 변환

    table WEB_APACHE_SAMPLE | tojson output=result
    

    레코드의 전체 필드를 JSON 문자열로 변환하여 result 필드에 할당합니다.

  2. 특정 필드만 JSON으로 변환

    table WEB_APACHE_SAMPLE | tojson output=request_json src_ip, method, uri, status
    

    src_ip, method, uri, status 필드만 JSON 문자열로 변환하여 request_json 필드에 할당합니다.

  3. 기본 출력 필드명으로 변환

    table WEB_APACHE_SAMPLE | tojson src_ip, method, uri
    

    src_ip, method, uri 필드를 JSON 문자열로 변환하여 기본 출력 필드 _json에 저장합니다.

변경 이력

대상도입 릴리스
tojson 명령어소나 4.0 이전 버전
중첩 depth 제한 완화(20 → 200)4.0.2609.0
필드 지정 시 키 순서 보장4.0.2609.0