Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

JSON 関数

最終更新 Markdown で表示Agent セットアップ

Cloudflare Pipelines は 2 系統の JSON 関数を提供します。1 つは PostgreSQL の SQL 関数と構文に基づき、もう 1 つは JSONPath 標準に基づきます。

SQL 関数

SQL 関数は、PostgreSQL にあるものに近い、基本的な JSON 解析関数を提供します。

json_contains

JSON 文字列が指定したキーを含む場合に true を返します。

SELECT json_contains('{"a": 1, "b": 2, "c": 3}', 'a') FROM source;
true

? 演算子でも使えます。

SELECT '{"a": 1, "b": 2, "c": 3}' ? 'a' FROM source;
true

json_get

指定したパス(キー)で JSON 文字列から値を取得します。値は元の型(文字列、整数など)で返します。

SELECT json_get('{"a": {"b": 2}}', 'a', 'b') FROM source;
2

-> 演算子でも使えます。

SELECT '{"a": {"b": 2}}'->'a'->'b' FROM source;
2

特定の型で値を取得する json_get の派生関数もあります。SQL の型注釈も使えます。

SELECT json_get('{"a": {"b": 2}}', 'a', 'b')::int FROM source;
2

json_get_str

指定したパスで JSON 文字列から文字列値を取得します。値が存在しない、または文字列でない場合は空文字列を返します。

SELECT json_get_str('{"a": {"b": "hello"}}', 'a', 'b') FROM source;
"hello"

json_get_int

指定したパスで JSON 文字列から整数値を取得します。値が存在しない、または整数でない場合は 0 を返します。

SELECT json_get_int('{"a": {"b": 42}}', 'a', 'b') FROM source;
42

json_get_float

指定したパスで JSON 文字列から浮動小数値を取得します。値が存在しない、または浮動小数でない場合は 0.0 を返します。

SELECT json_get_float('{"a": {"b": 3.14}}', 'a', 'b') FROM source;
3.14

json_get_bool

指定したパスで JSON 文字列から真偽値を取得します。値が存在しない、または真偽値でない場合は false を返します。

SELECT json_get_bool('{"a": {"b": true}}', 'a', 'b') FROM source;
true

json_get_json

指定したパスで JSON 文字列からネストした JSON 文字列を取得します。値は生の JSON として返します。

SELECT json_get_json('{"a": {"b": {"c": 1}}}', 'a', 'b') FROM source;
'{"c": 1}'

json_as_text

指定したパスで JSON 文字列から任意の値を取得し、元の型に関係なく文字列として返します。

SELECT json_as_text('{"a": {"b": 42}}', 'a', 'b') FROM source;
"42"

->> 演算子でも使えます。

SELECT '{"a": {"b": 42}}'->>'a'->>'b' FROM source;
"42"

json_length

指定したパスにある JSON オブジェクトまたは配列の長さを返します。パスが存在しない、またはオブジェクト/配列でない場合は 0 を返します。

SELECT json_length('{"a": [1, 2, 3]}', 'a') FROM source;
3

JSONPath 関数

JSON 関数は、JSON オブジェクトを照会する発展中の標準である JsonPath を使った、基本的な JSON 解析関数を提供します。

extract_json

第 1 引数の JSON 要素のうち、第 2 引数の JsonPath に一致するものを返します。戻り値は JSON 文字列の配列です。

SELECT extract_json('{"a": 1, "b": 2, "c": 3}', '$.a') FROM source;
['1']

extract_json_string

JsonPath に一致した最初の要素が文字列の場合、エスケープを解除した String を返します。

SELECT extract_json_string('{"a": "a", "b": 2, "c": 3}', '$.a') FROM source;
'a'

役に立ちましたか?