← Cloudflare Pipelines / pipelines / sql-reference / scalar-functions
Funkce JSON
Cloudflare Pipelines nabízí dvě sady JSON funkcí: první vychází ze SQL funkcí a syntaxe PostgreSQL, druhá vychází z JSONPath ↗ standard.
Funkce SQL
Tyto SQL funkce poskytují základní funkce pro parsování JSON podobné těm, které najdete v PostgreSQL.
json_contains
Vrátí true pokud řetězec JSON obsahuje zadané klíče.
SELECT json_contains('{"a": 1, "b": 2, "c": 3}', 'a') FROM source;
trueK dispozici také přes ? operátoru:
SELECT '{"a": 1, "b": 2, "c": 3}' ? 'a' FROM source;
truejson_get
Načte hodnotu z řetězce JSON podle zadané cesty (klíčů). Vrátí hodnotu v jejím původním typu (string, int atd.).
SELECT json_get('{"a": {"b": 2}}', 'a', 'b') FROM source;
2K dispozici také přes -> operátoru:
SELECT '{"a": {"b": 2}}'->'a'->'b' FROM source;
2Různé permutace json_get funkce jsou k dispozici pro získání hodnot jako
konkrétní typ, nebo můžete použít anotace typů SQL:
SELECT json_get('{"a": {"b": 2}}', 'a', 'b')::int FROM source;
2json_get_str
Načte řetězcovou hodnotu z řetězce JSON podle zadané cesty. Vrátí prázdný řetězec, pokud hodnota neexistuje nebo není řetězec.
SELECT json_get_str('{"a": {"b": "hello"}}', 'a', 'b') FROM source;
"hello"json_get_int
Načte celočíselnou hodnotu z řetězce JSON podle zadané cesty. Vrátí 0
pokud hodnota neexistuje nebo není celé číslo.
SELECT json_get_int('{"a": {"b": 42}}', 'a', 'b') FROM source;
42json_get_float
Načte hodnotu typu float z řetězce JSON podle zadané cesty. Vrátí 0.0
pokud hodnota neexistuje nebo není desetinné číslo.
SELECT json_get_float('{"a": {"b": 3.14}}', 'a', 'b') FROM source;
3.14json_get_bool
Načte booleovskou hodnotu z řetězce JSON podle zadané cesty. Vrátí
false pokud hodnota neexistuje nebo není booleovská.
SELECT json_get_bool('{"a": {"b": true}}', 'a', 'b') FROM source;
truejson_get_json
Načte vnořený řetězec JSON z řetězce JSON podle zadané cesty. Hodnota je vrácena jako nezpracovaný JSON.
SELECT json_get_json('{"a": {"b": {"c": 1}}}', 'a', 'b') FROM source;
'{"c": 1}'json_as_text
Načte libovolnou hodnotu z řetězce JSON podle zadané cesty a vrátí ji jako řetězec bez ohledu na původní typ.
SELECT json_as_text('{"a": {"b": 42}}', 'a', 'b') FROM source;
"42"K dispozici také přes ->> operátoru:
SELECT '{"a": {"b": 42}}'->>'a'->>'b' FROM source;
"42"json_length
Vrátí délku objektu JSON nebo pole na zadané cestě. Vrátí 0
pokud cesta neexistuje nebo není objektem ani polem.
SELECT json_length('{"a": [1, 2, 3]}', 'a') FROM source;
3Funkce JSON path
Funkce JSON poskytují základní funkce pro parsování json pomocí JsonPath ↗, vyvíjející se standard pro dotazování objektů JSON.
extract_json
Vrátí prvky JSON z prvního argumentu, které odpovídají JsonPath ve druhém argumentu. Vrácená hodnota je pole řetězců json.
SELECT extract_json('{"a": 1, "b": 2, "c": 3}', '$.a') FROM source;
['1']extract_json_string
Vrátí neescapovaný String pro první položku odpovídající JsonPath, pokud se jedná o řetězec.
SELECT extract_json_string('{"a": "a", "b": 2, "c": 3}', '$.a') FROM source;
'a'