JSON 함수의 유형
JSON을 파싱하기 위한 함수 집합은 두 가지입니다.- 매우 제한된 JSON 부분 집합을 매우 빠르게 파싱하도록 설계된
simpleJSON*(visitParam*) - 일반적인 JSON을 파싱하도록 설계된
JSONExtract*
simpleJSON (visitParam) 함수
ClickHouse에는 단순화된 JSON을 처리하기 위한 특수 함수가 있습니다. 이러한 JSON 함수는 모두 JSON이 어떤 형태일 수 있는지에 대해 강한 전제를 둡니다. 작업을 최대한 빠르게 수행하기 위해 필요한 최소한의 처리만 하도록 설계되었습니다. 다음과 같은 가정을 전제로 합니다:- 필드 이름(함수 인수)은 상수여야 합니다.
- 필드 이름은 JSON에서 일종의 정규화된 형식으로 인코딩되어 있어야 합니다. 예를 들어
simpleJSONHas('{"abc":"def"}', 'abc') = 1이지만,simpleJSONHas('{"\\u0061\\u0062\\u0063":"def"}', 'abc') = 0입니다. - 필드는 중첩 수준과 관계없이 모든 레벨에서 구분 없이 검색됩니다. 일치하는 필드가 여러 개 있으면 첫 번째 항목이 사용됩니다.
- JSON에는 문자열 리터럴 밖에 공백 문자가 없습니다.
JSONExtract 함수
이 함수들은 simdjson을 기반으로 하며, 더 복잡한 JSON 파싱 요구 사항을 처리하도록 설계되었습니다.대소문자를 구분하지 않는 JSONExtract 함수
이 함수들은 JSON 객체에서 값을 추출할 때 ASCII 기준으로 대소문자를 구분하지 않는 방식으로 키를 매칭합니다. 대소문자를 구분하는 대응 함수와 동일하게 동작하지만, 객체 키를 매칭할 때는 대소문자를 구분하지 않습니다. 대소문자만 다른 여러 키가 일치하면 첫 번째 일치 항목을 반환합니다.이 함수들은 대소문자를 구분하는 대응 함수보다 성능이 떨어질 수 있으므로, 가능하면 일반 JSONExtract 함수를 사용하십시오.
JSONPath 구문
JSON_EXISTS, JSON_VALUE, JSON_QUERY 함수는 두 번째 인수로 JSONPath
표현식을 받습니다. ClickHouse는 SQL/JSON 표준(ISO/IEC TR 19075-6)을
느슨하게 기반으로 하며, RFC 9535 및
기타 널리 사용되는 구현보다 의도적으로 제한적인 JSONPath의 작은 부분 집합을 구현합니다. 지원되는 연산자는 아래에 나열되어 있습니다.
공식 구현은
src/Functions/JSONPath/Parsers에 있습니다.
지원되는 연산자
참고:
- 인덱스와 범위는 같은 대괄호 쌍 안에서 함께 사용할 수 있습니다(예:
[0 to 2, 4]). - 인덱스 범위와 와일드카드는 같은 대괄호 쌍 안에서 함께 사용할 수 없습니다(예:
[* , 0]은 유효하지 않습니다). - 범위
[n to m]에서 시작점n은 끝점m보다 반드시 작아야 하며, 그렇지 않으면 예외가 발생합니다. - 단일 인덱스
[n]은 범위[n to n+1]와 동일합니다.
지원되지 않는 연산자
RFC 9535 또는 기타 구현에서 사용할 수 있는 다음 JSONPath 연산자는 ClickHouse에서 지원되지 않습니다.JSONAllPaths
도입 버전: v24.8.0 JSON 컬럼 각 행에 저장된 모든 경로 목록을 반환합니다. 구문json— JSON 컬럼.JSON
Array(String)
예시
사용 예시
Query
Response
JSONAllPathsWithTypes
도입 버전: v24.8.0 JSON 컬럼 각 행에 저장된 모든 경로와 해당 데이터 타입의 목록을 반환합니다. 구문json— JSON 컬럼.JSON
Map(String, String)
예시
사용 예시
Query
Response
JSONAllValues
도입 버전: v26.4.0 JSON 컬럼의 각 행에 있는 모든 값을 문자열 배열로 반환합니다. 값은 텍스트 형식으로 직렬화되며 경로 이름순으로 정렬됩니다. 구문json— JSON 컬럼.JSON
Array(String)
예시
사용 예시
Query
Response
JSONArrayLength
도입 버전: v23.2.0 최상위 JSON 배열의 요소 수를 반환합니다. 입력 JSON 문자열이 유효하지 않으면NULL을 반환합니다.
구문
JSON_ARRAY_LENGTH
인수
json— 유효한 JSON 문자열입니다.String
json이 유효한 JSON 배열 문자열이면 배열의 요소 수를 반환하고, 그렇지 않으면 NULL을 반환합니다. Nullable(UInt64)
예시
사용 예시
Query
Response
JSONDynamicPaths
도입 버전: v24.8.0 JSON 컬럼에서 별도의 서브컬럼으로 저장된 동적 경로 목록을 반환합니다. 구문json— JSON 컬럼.JSON
Array(String)
예시
사용 예시
Query
Response
JSONDynamicPathsWithTypes
도입 버전: v24.8.0 JSON 컬럼의 각 행에서 별도 서브컬럼으로 저장된 동적 경로 목록과 해당 타입을 반환합니다. 구문json— JSON 컬럼.JSON
Map(String, String)
예시
사용 예시
Query
Response
JSONExtract
도입 버전: v19.14.0 JSON을 파싱하여 지정한 ClickHouse 데이터 타입의 값을 추출합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 0개 이상의 인수로 이루어진 목록이며, 각 인수는 문자열 또는 정수일 수 있습니다.String또는(U)Int*return_type— 반환할 ClickHouse 데이터 타입입니다.String
Query
Response
JSONExtractArrayRaw
도입 버전: v20.1.0 JSON 배열의 각 원소를 파싱되지 않은 문자열로 표현한 배열을 반환합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 각각 문자열 또는 정수일 수 있는 인수 0개 이상으로 이루어진 목록입니다.String또는(U)Int*
Array(String)
예시
사용 예시
Query
Response
JSONExtractArrayRawCaseInsensitive
도입 버전: v25.8.0 대소문자를 구분하지 않는 키 매칭을 사용하여 JSON 배열의 각 요소를 파싱되지 않은 문자열 형태로 표현한 배열을 반환합니다. 이 함수는JSONExtractArrayRaw와 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 배열을 탐색하기 위한 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다String또는(U)Int*
Array(String)
예시
기본
Query
Response
JSONExtractBool
도입 버전: v20.1.0 JSON을 파싱하여 Bool 유형의 값을 추출합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 각 항목이 문자열 또는 정수일 수 있는 인수 목록이며, 0개 이상 지정할 수 있습니다.String또는(U)Int*
0을 반환합니다. Bool
예시
사용 예시
Query
Response
JSONExtractBoolCaseInsensitive
도입 버전: v25.8.0 JSON을 파싱하여 키 매칭을 사용해 불리언 값을 추출합니다. 이 함수는JSONExtractBool와 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 필드로 이동하기 위한 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다.String또는(U)Int*
UInt8
예시
기본
Query
Response
JSONExtractCaseInsensitive
도입 버전: v25.8.0 JSON을 파싱하고 대소문자를 구분하지 않는 키 매칭으로 지정된 ClickHouse 데이터 타입의 값을 추출합니다. 이 함수는JSONExtract와 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 필드로 이동하는 데 사용할 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다String또는(U)Int*return_type— 추출할 ClickHouse 데이터 타입String
Any
예시
int_type
Query
Response
Query
Response
JSONExtractFloat
도입 버전: v20.1.0 JSON을 파싱하여 Float 유형의 값을 추출합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 0개 이상의 인수로 이루어진 목록이며, 각 인수는 문자열 또는 정수일 수 있습니다.String또는(U)Int*
0을 반환합니다. Float64
예시
사용 예시
Query
Response
JSONExtractFloatCaseInsensitive
도입 버전: v25.8.0 JSON을 파싱하고 키 매칭을 사용해 Float 유형의 값을 추출합니다. 이 함수는JSONExtractFloat와 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 필드로 이동하기 위한 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다.String또는(U)Int*
Float64
예시
기본
Query
Response
JSONExtractInt
도입된 버전: v20.1.0 JSON을 파싱하여 Int 유형의 값을 추출합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 각 항목이 문자열 또는 정수일 수 있는 0개 이상의 인수 목록입니다.String또는(U)Int*
0을 반환합니다. Int64
예시
사용 예시
Query
Response
JSONExtractIntCaseInsensitive
도입 버전: v25.8.0 JSON을 파싱하고 대소문자를 구분하지 않는 키 매칭으로 Int 유형의 값을 추출합니다. 이 함수는JSONExtractInt와 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 필드에 접근하기 위한 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다String또는(U)Int*
Int64
예시
기본
Query
Response
Query
Response
JSONExtractKeys
도입 버전: v21.11.0 JSON 문자열을 파싱하여 키를 추출합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 0개 이상의 인수로 이루어진 목록이며, 각 인수는 문자열 또는 정수일 수 있습니다.String또는(U)Int*
Array(String)
예시
사용 예시
Query
Response
JSONExtractKeysAndValues
도입 버전: v20.1.0 값이 지정된 ClickHouse 데이터 타입인 JSON에서 key-value 쌍을 파싱합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 각 인수는 문자열 또는 정수일 수 있으며, 이러한 인수를 0개 이상 나열한 목록입니다.String또는(U)Int*value_type— 값의 ClickHouse 데이터 타입입니다.String
Array(Tuple(String, value_type))
예시
사용 예시
Query
Response
JSONExtractKeysAndValuesCaseInsensitive
도입 버전: v25.8.0 대소문자를 구분하지 않는 키 매칭을 사용해 JSON에서 key-value 쌍을 파싱합니다. 이 함수는JSONExtractKeysAndValues와 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 객체까지 탐색하는 데 사용할 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다String또는(U)Int*value_type— 값의 ClickHouse 데이터 타입입니다String
Array(Tuple(String, T))
예시
기본
Query
Response
JSONExtractKeysAndValuesRaw
도입 버전: v20.4.0 JSON 객체의 키와 값을 담은 튜플 배열을 반환합니다. 모든 값은 파싱되지 않은 문자열로 표현됩니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 각 항목이 문자열 또는 정수일 수 있는 0개 이상의 인수 목록입니다.String또는(U)Int*
Array(Tuple(String, String))
예시
사용 예시
Query
Response
JSONExtractKeysAndValuesRawCaseInsensitive
도입 버전: v25.8.0 대소문자를 구분하지 않는 키 매칭을 사용해 JSON에서 원시 key-value 쌍을 추출합니다. 이 함수는JSONExtractKeysAndValuesRaw와 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 객체 내부를 탐색하기 위한 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다String또는(U)Int*
Array(Tuple(String, String))
예시
기본
Query
Response
JSONExtractKeysCaseInsensitive
지원 버전: v25.8.0 JSON 문자열을 파싱하고, 대소문자를 구분하지 않는 키 매칭으로 중첩된 객체를 탐색하여 키를 추출합니다. 이 함수는JSONExtractKeys와 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 객체로 탐색하기 위한 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다String또는(U)Int*
Array(String)
예시
기본
Query
Response
Query
Response
JSONExtractRaw
도입 버전: v20.1.0 JSON의 일부를 파싱되지 않은 문자열로 반환합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 0개 이상의 인수로 이루어진 목록이며, 각 인수는 문자열 또는 정수일 수 있습니다.String또는(U)Int*
String
예시
사용 예시
Query
Response
JSONExtractRawCaseInsensitive
도입 버전: v25.8.0 대소문자를 구분하지 않는 키 매칭을 사용해 JSON의 일부를 파싱하지 않은 문자열로 반환합니다. 이 함수는JSONExtractRaw와 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 필드에 접근하기 위한 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치 여부를 판단합니다String또는(U)Int*
String
예시
객체
Query
Response
JSONExtractString
지원 시작 버전: v20.1.0 JSON을 파싱하여 String 유형의 값을 추출합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 각 항목이 문자열 또는 정수일 수 있는, 0개 이상의 인수 목록입니다.String또는(U)Int*
String 값을 반환하고, 없으면 빈 문자열을 반환합니다. String
예시
사용 예시
Query
Response
JSONExtractStringCaseInsensitive
도입 버전: v25.8.0 JSON을 파싱해 대소문자를 구분하지 않는 키 매칭으로 문자열을 추출합니다. 이 함수는JSONExtractString과 유사합니다.
구문
json— 파싱할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 필드까지 이동하기 위한 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다String또는(U)Int*
String
예시
기본
Query
Response
Query
Response
JSONExtractUInt
도입 버전: v20.1.0 JSON을 파싱하여 UInt 유형의 값을 추출합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 0개 이상의 인수로 이루어진 목록이며, 각 인수는 문자열 또는 정수일 수 있습니다.String또는(U)Int*
0을 반환합니다. UInt64
예시
사용 예시
Query
Response
JSONExtractUIntCaseInsensitive
도입 버전: v25.8.0 JSON을 파싱하고 대소문자를 구분하지 않는 키 매칭을 사용하여 UInt 유형의 값을 추출합니다. 이 함수는JSONExtractUInt와 유사합니다.
구문
json— parse할 JSON 문자열Stringindices_or_keys— 선택 사항입니다. 필드에 도달하기 위한 인덱스 또는 키입니다. 키는 대소문자를 구분하지 않고 일치합니다String또는(U)Int*
UInt64
예시
기본
Query
Response
JSONHas
도입 버전: v20.1.0 JSON 문서에 지정된 값이 존재하는지 확인합니다. 구문json에 존재하면 1을, 그렇지 않으면 0을 반환합니다 UInt8
예시
사용 예시
Query
Response
JSONKey
도입 버전: v20.1.0 인덱스(1부터 시작)에 해당하는 JSON 객체 필드의 키를 반환합니다. JSON이 문자열로 전달되면 먼저 파싱합니다. 두 번째 인수는 중첩된 객체 내부로 이동하기 위한 JSON 경로입니다. 이 함수는 지정된 위치의 키 이름을 반환합니다. 구문json— 파싱할 JSON 문자열입니다.Stringindices_or_keys— 중첩된 요소에 대한 경로를 지정하는 선택적 인덱스 또는 키 목록입니다. 각 인수는 문자열(키로 액세스) 또는 정수(1부터 시작하는 인덱스로 액세스)일 수 있습니다.String또는Int*
String
예시
사용 예시
Query
Response
JSONLength
도입 버전: v20.1.0 JSON 배열 또는 JSON 객체의 길이를 반환합니다. 값이 없거나 유형이 올바르지 않으면0을 반환합니다.
구문
json— 파싱할 JSON 문자열String[, indices_or_keys, ...]— 선택 사항입니다. 0개 이상의 인수로 이루어진 목록입니다.String또는(U)Int8/16/32/64
0을 반환합니다. UInt64
예시
사용 예시
Query
Response
JSONMergePatch
도입 버전: v23.10.0 여러 JSON 객체를 병합해 생성된 JSON 객체 문자열을 반환합니다. 구문jsonMergePatch
인수
json1[, json2, ...]— 유효한 JSON이 담긴 하나 이상의 문자열입니다.String
String
예시
사용 예시
Query
Response
JSONSharedDataPaths
도입 버전: v24.8.0 JSON 컬럼의 공유 데이터 구조에 저장된 경로 목록을 반환합니다. 구문json— JSON 컬럼.JSON
Array(String)
예시
사용 예시
Query
Response
JSONSharedDataPathsWithTypes
도입 버전: v24.8.0 JSON 컬럼의 각 행에 대해 공유 데이터 구조에 저장된 경로 목록과 해당 유형을 반환합니다. 구문json— JSON 컬럼.JSON
Map(String, String)
예시
사용 예시
Query
Response
JSONType
지원 시작 버전: v20.1.0 JSON 값의 유형을 반환합니다. 값이 존재하지 않으면Null=0을 반환합니다.
구문
json— 파싱할 JSON 문자열Stringjson[, indices_or_keys, ...]— 0개 이상의 인수 목록으로, 각 인수는 문자열 또는 정수일 수 있습니다.String또는(U)Int8/16/32/64
Null=0을 반환합니다 Enum
예시
사용 예시
Query
Response
JSON_EXISTS
도입 버전: v21.8.0 값이 JSON 문서에 존재하면1이 반환됩니다.
값이 존재하지 않으면 0이 반환됩니다.
구문
1을, 없으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
JSON_QUERY
도입 버전: v21.8.0 JSON을 파싱하여 값을 JSON 배열 또는 JSON 객체로 추출합니다. 값이 존재하지 않으면 빈 문자열이 반환됩니다. 구문String
예시
사용 예시
Query
Response
JSON_VALUE
도입 버전: v21.11.0 JSON을 파싱하여 값을 JSON 스칼라로 추출합니다. 값이 존재하지 않으면 기본적으로 빈 문자열이 반환됩니다. 이 함수의 동작은 다음 설정으로 제어됩니다:- SET
function_json_value_return_type_allow_nullable=true로 설정하면NULL이 반환됩니다. 값이 복합 유형(예: struct, 배열, 맵)인 경우에는 기본적으로 빈 문자열이 반환됩니다. - SET
function_json_value_return_type_allow_complex=true로 설정하면 복합 값이 반환됩니다.
String
예시
사용 예시
Query
Response
dynamicElement
도입 버전: v24.1.0Dynamic 컬럼에서 지정된 타입의 컬럼을 추출합니다.
이 함수는 Dynamic 컬럼에서 특정 타입의 값을 추출할 수 있습니다. 행에 요청한 타입의 값이 있으면
해당 값을 반환합니다. 행에 다른 타입의 값이나 NULL이 있으면 스칼라 타입에는 NULL을 반환하고
배열 타입에는 빈 배열을 반환합니다.
구문
dynamic— 값을 추출할 Dynamic 컬럼입니다.Dynamictype_name— 추출할 variant 타입의 이름입니다(예: ‘String’, ‘Int64’, ‘Array(Int64)’).
Any
예시
Dynamic 컬럼에서 다양한 타입 추출하기
Query
Response
dynamicType
v24.1.0에서 도입됨Dynamic 컬럼의 각 행에 대한 variant 타입 이름을 반환합니다.
NULL을 포함하는 행의 경우 함수는 ‘None’을 반환합니다. 그 외의 모든 행에 대해서는 Dynamic 컬럼의 해당 행에 저장된 실제 데이터 타입을 반환합니다(예: ‘Int64’, ‘String’, ‘Array(Int64)’).
구문
dynamic— 검사할 Dynamic 컬럼입니다.Dynamic
String
예시
Dynamic 컬럼의 타입 검사
Query
Response
isDynamicElementInSharedData
도입 버전: v24.1.0 개별 서브컬럼으로 분리되어 저장되지 않고 공유 variant 포맷으로 저장된 Dynamic 컬럼의 행에 대해 true를 반환합니다. Dynamic 컬럼에max_types 제한이 있으면, 이 제한을 초과하는 값은 개별 타입의 서브컬럼으로 분리되지 않고
공유 바이너리 형식으로 저장됩니다. 이 함수는 어떤 행이 이 공유 형식으로 저장되었는지 식별합니다.
구문
dynamic— 확인할 Dynamic 컬럼.Dynamic
Bool
예시
max_types 제한이 설정된 Dynamic 컬럼의 저장 포맷 확인
Query
Response
isValidJSON
도입 버전: v20.1.0 전달된 문자열이 유효한 JSON 형식인지 확인합니다. 구문json— 유효성을 검사할 JSON 문자열String
1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
Query
Response
prettyPrintJSON
도입 버전: v26.4.0 줄바꿈과 공백 들여쓰기를 적용해 보기 좋게 포맷한 JSON 문자열을 반환합니다. 구문String
예시
단순한 객체
Query
Response
Query
Response
simpleJSONExtractBool
도입 버전: v21.4.0field_name이라는 이름의 필드 값에서 true/false 값을 파싱합니다.
결과는 UInt8입니다.
구문
visitParamExtractBool
인수
json— 필드를 검색할 JSON입니다.Stringfield_name— 검색할 필드의 이름입니다.const String
true이면 1을 반환하고, 그렇지 않으면 0을 반환합니다. 즉, 다음과 같은 경우를 포함해(이에 국한되지 않음) 이 함수는 0을 반환합니다.
- 필드가 존재하지 않는 경우
- 필드에
true가 문자열로 포함된 경우. 예:{"field":"true"}. - 필드에 숫자 값
1이 포함된 경우.UInt8
Query
Response
simpleJSONExtractFloat
도입 버전: v21.4.0field_name이라는 이름의 필드 값에서 Float64를 파싱합니다.
field_name이 String 필드이면 문자열의 시작 부분에서 숫자를 파싱합니다.
필드가 존재하지 않거나 존재하더라도 숫자를 포함하지 않으면 0을 반환합니다.
구문
visitParamExtractFloat
인수
json— 필드를 검색할 JSON입니다.Stringfield_name— 검색할 필드 이름입니다.const String
0을 반환합니다. Float64
예시
사용 예시
Query
Response
simpleJSONExtractInt
도입 버전: v21.4.0field_name이라는 이름의 field 값에서 Int64를 파싱합니다.
field_name이 문자열 field이면 문자열의 시작 부분에서 숫자를 파싱합니다.
field가 없거나, 있더라도 숫자를 포함하지 않으면 0을 반환합니다.
구문
visitParamExtractInt
인수
json— 필드를 찾을 JSON입니다.Stringfield_name— 찾을 필드의 이름입니다.const String
0을 반환합니다. Int64
예시
사용 예시
Query
Response
simpleJSONExtractRaw
도입 버전: v21.4.0field_name이라는 이름의 필드 값을 구분자를 포함한 String으로 반환합니다.
구문
visitParamExtractRaw
인수
json— 필드를 찾을 JSON입니다.Stringfield_name— 검색할 필드 이름입니다.const String
String
예시
사용 예시
Query
Response
simpleJSONExtractString
도입 버전: v21.4.0field_name이라는 이름의 필드 값에서 큰따옴표로 둘러싸인 String을 파싱합니다.
구현 세부 사항
현재 기본 다국어 평면에 속하지 않는 \uXXXX\uYYYY 포맷의 코드 포인트는 지원하지 않습니다(UTF-8이 아니라 CESU-8로 변환됨).
구문
visitParamExtractString
인수
json— 필드를 찾을 JSON입니다.Stringfield_name— 찾을 필드의 이름입니다.const String
String
예시
사용 예시
Query
Response
simpleJSONExtractUInt
도입 버전: v21.4.0field_name이라는 이름의 필드 값에서 UInt64를 파싱합니다.
field_name이 문자열 필드이면 문자열의 시작 부분에서 숫자를 파싱합니다.
필드가 없거나 필드는 존재하지만 숫자를 포함하지 않으면 0을 반환합니다.
구문
visitParamExtractUInt
인수
json— 필드를 찾을 JSON입니다.Stringfield_name— 찾을 필드의 이름입니다.const String
0을 반환합니다. UInt64
예시
사용 예시
Query
Response
simpleJSONHas
도입 버전: v21.4.0field_name이라는 이름의 필드가 존재하는지 확인합니다.
구문
visitParamHas
인수
json— 필드를 검색할 JSON입니다.Stringfield_name— 검색할 필드 이름입니다.const String
1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
toJSONString
도입 버전: v21.7.0 값을 JSON 표현으로 직렬화합니다. 다양한 데이터 타입과 중첩된 구조를 지원합니다. 64비트 정수 또는 그보다 큰 값(UInt64, Int128 등)은 기본적으로 따옴표 없이 출력됩니다. 이 동작은 output_format_json_quote_64bit_integers 설정으로 제어합니다.
특수 값 NaN 및 inf는 null로 대체됩니다. 이를 표시하려면 output_format_json_quote_denormals 설정을 활성화하십시오.
Enum 값을 직렬화하면 해당 이름을 출력합니다.
관련 항목:
구문
value— 직렬화할 값입니다. 값은 모든 데이터 타입이 될 수 있습니다.Any
String
예시
맵 직렬화
Query
Response
Query
Response