関数名 | ステートメント | 意味 |
json_array_contains(x,value) | JSON 配列に特定の値が含まれているかどうかを判断します。 | |
json_array_get(x,index) | JSON 配列内の特定のインデックスに対応する要素を取得します。 | |
json_array_length(x) | JSON 配列内の要素数を計算します。x が JSON 配列ではない場合、null を返します。 | |
json_extract(x,json_path) | JSON オブジェクトまたは JSON 配列から、JSON 値のセット(配列またはオブジェクト)を抽出します。 | |
json_extract_scalar(x,json_path) | JSON オブジェクトまたは JSON 配列から、スカラー値のセット(文字列、整数、またはブール値)を抽出します。json_extract 関数に類似しています。 | |
json_format(x) | JSON 型を文字列型に変換します。 | |
json_parse(x) | 文字列型を JSON 型に変換します。 | |
json_size(x,json_path) | JSON オブジェクトまたは配列内の要素数を計算します。 |
json_array_contains(x, value)
パラメータ | 説明 |
x | パラメータ値はJSON配列です。 |
value | 数値。 |
* | SELECT json_array_contains('[1, 2, 3]', 2)
true
json_array_get(x, index)
パラメータ | 説明 |
x | パラメータ値はJSON配列です。 |
index | JSONの添字は0から始まります。 |
* | SELECT json_array_get('["a", [3, 9], "c"]', 1)
[3,9]
json_array_length(x)
パラメータ | 説明 |
x | パラメータ値はJSON配列です。 |
apple.message:[{"traceName":"StoreMonitor"},{"topicName":"persistent://apache/pulsar/test-partition-17"},{"producerName":"pulsar-mini-338-36"},{"localAddr":"pulsar://pulsar-mini-broker-5.pulsar-mini-broker.pulsar.svc.cluster.local:6650"},{"sequenceId":826},{"storeTime":1635905306062},{"messageId":"19422-24519"},{"status":"SUCCESS"}]
* | SELECT json_array_length(apple.message)
8
json_extract(x, json_path)
パラメータ | 説明 |
x | パラメータ値はJSONオブジェクトまたはJSON配列です。 |
json_path | 注意: 配列要素を走査する必要があるJSON構文はサポートされていません。例えば $.store.book[*].author、$..book[(@.length-1)]、$..book[?(@.price<10)]などです。要素名に特殊文字が含まれる場合は、 .構文の代わりに[]構文を使用し、要素名を二重引用符で囲みます。例えば$.store["book name"]です。 |
apple.instant:{"epochSecond":1635905306,"nanoOfSecond":63001000}
* | SELECT json_extract(apple.instant, '$.epochSecond')
1635905306
json_extract_scalar(x, json_path)
パラメータ | 説明 |
x | パラメータ値はJSON配列です。 |
json_path | 注意: 配列要素を走査する必要があるJSON構文はサポートされていません。例えば $.store.book[*].author、$..book[(@.length-1)]、$..book[?(@.price<10)]などです。要素名に特殊文字が含まれる場合は、 .構文の代わりに[]構文を使用し、要素名を二重引用符で囲みます。例えば$.store["book name"]です。 |
apple.instant:{"epochSecond":1635905306,"nanoOfSecond":63001000}
* | SELECT sum(cast(json_extract_scalar(apple.instant,'$.epochSecond') AS bigint) )
1635905306
json_format(x)
パラメータ | 説明 |
x | パラメータ値はJSON型です。 |
* | SELECT json_format(json_parse('[1, 2, 3]'))
[1, 2, 3]
json_parse(x)
パラメータ | 説明 |
x | パラメータ値は文字列です。 |
* | SELECT json_parse('[1, 2, 3]')
[1, 2, 3]
json_size(x, json_path)
パラメータ | 説明 |
x | パラメータ値はJSONオブジェクトまたはJSON配列です。 |
json_path | 注意: 配列要素を走査する必要があるJSON構文はサポートされていません。例えば $.store.book[*].author、$..book[(@.length-1)]、$..book[?(@.price<10)]などです。要素名に特殊文字が含まれる場合は、 .構文の代わりに[]構文を使用し、要素名を二重引用符で囲みます。例えば$.store["book name"]です。 |
* | SELECT json_size(json_parse('[1, 2, 3]'),'$')
3
フィードバック