PPLJSONfunções - OpenSearch Serviço Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

PPLJSONfunções

nota

Para ver quais integrações AWS de fontes de dados oferecem suporte a essa PPL função, consulteFunções.

JSON

Uso: json(value) avalia se uma string pode ser analisada como JSON formato. A função retorna a string original se for válida JSON ou nula se for inválida.

Tipo de argumento: STRING

Tipo de devolução:STRING/NULL. Uma STRING expressão de um formato de JSON objeto válido.

Exemplos:

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

Uso: json_object(<key>, <value>[, <key>, <value>]...) retorna um JSON objeto de membros de pares de valores-chave.

Tipo de argumento:

  • Um <key>imperdívelSTRING.

  • A <value>pode ser qualquer tipo de dados.

Tipo de devolução: JSON _OBJECT. Uma StructType expressão de um JSON objeto válido.

Exemplos:

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

Uso: json_array(<value>...) cria um JSON ARRAY usando uma lista de valores.

Tipo de argumento: A <value> pode ser qualquer tipo de valor, como string, número ou booleano.

Tipo de devolução:ARRAY. Uma matriz de qualquer tipo de dados compatível para uma JSON matriz válida.

Exemplos:

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

Uso: to_json_string(jsonObject) retorna uma JSON string com um determinado valor de objeto json.

Tipo de argumento: JSON _ OBJECT

Tipo de devolução: STRING

Exemplos:

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

Uso: array_length(jsonArray) retorna o número de elementos na matriz mais externa.

Tipo de argumento:ARRAY. Um ARRAY objeto ARRAY ou JSON _.

Tipo de devolução: INTEGER

Exemplo:

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

Uso: json_extract(jsonStr, path) extrai um JSON objeto de uma JSON string com base no JSON caminho especificado. A função retornará null se a JSON string de entrada for inválida.

Tipo de argumento:STRING, STRING

Tipo de devolução: STRING

  • Uma STRING expressão de um formato de JSON objeto válido.

  • NULLé retornado em caso de JSON inválido.

Exemplos:

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

Uso: json_keys(jsonStr) retorna todas as chaves do JSON objeto mais externo como uma matriz.

Tipo de argumento:STRING. Uma STRING expressão de um formato de JSON objeto válido.

Tipo de devolução: ARRAY [STRING]. A função retorna NULL para qualquer outra JSON string válida, uma string vazia ou JSON inválida.

Exemplos:

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

Uso: json_valid(jsonStr) avalia se uma JSON string usa uma JSON sintaxe válida e retorna TRUE ou. FALSE

Tipo de argumento: STRING

Tipo de devolução: BOOLEAN

Exemplos:

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 | +------------------+---------+