PPL JSON 함수 - Amazon OpenSearch Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

PPL JSON 함수

참고

이 PPL 함수를 지원하는 AWS 데이터 소스 통합을 확인하려면 섹션을 참조하세요함수.

JSON

사용량: 문자열을 JSON 형식으로 구문 분석할 수 있는지 여부를 json(value) 평가합니다. 함수는 유효한 경우 원래 문자열을 반환하고 유효하지 않은 경우 JSONnull을 반환합니다.

인수 유형: STRING

반환 유형: STRING/NULL. 유효한 JSON 객체 형식의 STRING 표현식입니다.

:

os> source=people | eval `valid_json()` = json('[1,2,3,{"f1":1,"f2":[5,6]},4]') | fields valid_json fetched rows / total rows = 1/1 +---------------------------------+ | valid_json | +---------------------------------+ | [1,2,3,{"f1":1,"f2":[5,6]},4] | +---------------------------------+ os> source=people | eval `invalid_json()` = json('{"invalid": "json"') | fields invalid_json fetched rows / total rows = 1/1 +----------------+ | invalid_json | +----------------+ | null | +----------------+

JSON_OBJECT

사용량: 키-값 페어의 멤버에서 JSON 객체를 json_object(<key>, <value>[, <key>, <value>]...) 반환합니다.

인수 유형:

  • <key>는 여야 합니다STRING.

  • <value>는 모든 데이터 형식일 수 있습니다.

반환 유형: JSON_OBJECT. 유효한 JSON 객체의 StructType 표현식입니다.

:

os> source=people | eval result = json_object('key', 123.45) | fields result fetched rows / total rows = 1/1 +------------------+ | result | +------------------+ | {"key":123.45} | +------------------+ os> source=people | eval result = json_object('outer', json_object('inner', 123.45)) | fields result fetched rows / total rows = 1/1 +------------------------------+ | result | +------------------------------+ | {"outer":{"inner":123.45}} | +------------------------------+

JSON_ARRAY

사용량: 값 목록을 JSON ARRAY 사용하여를 json_array(<value>...) 생성합니다.

인수 유형: A는 문자열, 숫자 또는 부울과 같은 모든 종류의 값일 <value> 수 있습니다.

반환 유형: ARRAY. 유효한 배열에 대해 지원되는 모든 데이터 형식의 JSON 배열입니다.

:

os> source=people | eval `json_array` = json_array(1, 2, 0, -1, 1.1, -0.11) fetched rows / total rows = 1/1 +------------------------------+ | json_array | +------------------------------+ | [1.0,2.0,0.0,-1.0,1.1,-0.11] | +------------------------------+ os> source=people | eval `json_array_object` = json_object("array", json_array(1, 2, 0, -1, 1.1, -0.11)) fetched rows / total rows = 1/1 +----------------------------------------+ | json_array_object | +----------------------------------------+ | {"array":[1.0,2.0,0.0,-1.0,1.1,-0.11]} | +----------------------------------------+

TO_JSON_STRING

사용량: 지정된 json 객체 값을 가진 JSON 문자열을 to_json_string(jsonObject) 반환합니다.

인수 유형: JSON_OBJECT

반환 유형: STRING

:

os> source=people | eval `json_string` = to_json_string(json_array(1, 2, 0, -1, 1.1, -0.11)) | fields json_string fetched rows / total rows = 1/1 +--------------------------------+ | json_string | +--------------------------------+ | [1.0,2.0,0.0,-1.0,1.1,-0.11] | +--------------------------------+ os> source=people | eval `json_string` = to_json_string(json_object('key', 123.45)) | fields json_string fetched rows / total rows = 1/1 +-----------------+ | json_string | +-----------------+ | {'key', 123.45} | +-----------------+

ARRAY_LENGTH

사용량: 가장 바깥쪽 배열의 요소 수를 array_length(jsonArray) 반환합니다.

인수 유형: ARRAY. ARRAY 또는 JSON_ARRAY 객체.

반환 유형: INTEGER

예:

os> source=people | eval `json_array` = json_array_length(json_array(1,2,3,4)), `empty_array` = json_array_length(json_array()) fetched rows / total rows = 1/1 +--------------+---------------+ | json_array | empty_array | +--------------+---------------+ | 4 | 0 | +--------------+---------------+

JSON_EXTRACT

사용량: 지정된 JSON 경로를 기반으로 JSON 문자열에서 JSON 객체를 json_extract(jsonStr, path) 추출합니다. 입력 JSON 문자열이 유효하지 않으면 함수가 null을 반환합니다.

인수 유형: STRING, STRING

반환 유형: STRING

  • 유효한 JSON 객체 형식의 STRING 표현식입니다.

  • NULL는 잘못된의 경우 반환됩니다JSON.

:

os> source=people | eval `json_extract('{"a":"b"}', '$.a')` = json_extract('{"a":"b"}', '$a') fetched rows / total rows = 1/1 +----------------------------------+ | json_extract('{"a":"b"}', 'a') | +----------------------------------+ | b | +----------------------------------+ os> source=people | eval `json_extract('{"a":[{"b":1},{"b":2}]}', '$.a[1].b')` = json_extract('{"a":[{"b":1},{"b":2}]}', '$.a[1].b') fetched rows / total rows = 1/1 +-----------------------------------------------------------+ | json_extract('{"a":[{"b":1.0},{"b":2.0}]}', '$.a[1].b') | +-----------------------------------------------------------+ | 2.0 | +-----------------------------------------------------------+ os> source=people | eval `json_extract('{"a":[{"b":1},{"b":2}]}', '$.a[*].b')` = json_extract('{"a":[{"b":1},{"b":2}]}', '$.a[*].b') fetched rows / total rows = 1/1 +-----------------------------------------------------------+ | json_extract('{"a":[{"b":1.0},{"b":2.0}]}', '$.a[*].b') | +-----------------------------------------------------------+ | [1.0,2.0] | +-----------------------------------------------------------+ os> source=people | eval `invalid_json` = json_extract('{"invalid": "json"') fetched rows / total rows = 1/1 +----------------+ | invalid_json | +----------------+ | null | +----------------+

JSON_KEYS

사용량: 가장 바깥쪽 JSON 객체의 모든 키를 배열로 json_keys(jsonStr) 반환합니다.

인수 유형: STRING. 유효한 JSON 객체 형식의 STRING 표현식입니다.

반환 유형: ARRAY[STRING]. 함수는 다른 유효한 JSON 문자열, 빈 문자열 또는 잘못된에 NULL 대해를 반환합니다JSON.

:

os> source=people | eval `keys` = json_keys('{"f1":"abc","f2":{"f3":"a","f4":"b"}}') fetched rows / total rows = 1/1 +------------+ | keus | +------------+ | [f1, f2] | +------------+ os> source=people | eval `keys` = json_keys('[1,2,3,{"f1":1,"f2":[5,6]},4]') fetched rows / total rows = 1/1 +--------+ | keys | +--------+ | null | +--------+

JSON_VALID

사용량: JSON 문자열이 유효한 구문을 사용하고 TRUE 또는 JSON를 반환하는지 json_valid(jsonStr) 평가합니다FALSE.

인수 유형: STRING

반환 유형: BOOLEAN

:

os> source=people | eval `valid_json` = json_valid('[1,2,3,4]'), `invalid_json` = json_valid('{"invalid": "json"') | feilds `valid_json`, `invalid_json` fetched rows / total rows = 1/1 +--------------+----------------+ | valid_json | invalid_json | +--------------+----------------+ | True | False | +--------------+----------------+ os> source=accounts | where json_valid('[1,2,3,4]') and isnull(email) | fields account_number, email fetched rows / total rows = 1/1 +------------------+---------+ | account_number | email | |------------------+---------| | 13 | null | +------------------+---------+