當您在 SQL 編輯器中輸入查詢 或建立計算 時,您會使用Presto SQL 語法 。要調整 JavaScript Object Notation (JSON) 陣列和值,您可能會發現這些常見函數很有用。
JSON_ARRAY_LENGTH
要返回 JSON 陣列的值的數量 - 或length -,請使用JSON_ARRAY_LENGTH 函式,例如:
json_array_length(json) → bigint
例如:SELECT json_array_length('[a, b, c]'); 返回的長度為3 。
JSON_ARRAY_GET
要根據基於 0 的索引來回傳 JSON 陣列的值,請使用JSON_ARRAY_GET 函式,如: :
json_array_get(json_array, index) → json
例如:
-
SELECT json_array_get('["a", "b", "c"]「, 0);返回」a' -
SELECT json_array_get('["a", "b", "c"]「, 1);返回」b'
要返回從陣列的結尾 索引的值,可以使用負索引。例如:
-
SELECT json_array_get('["c", "b", "a"]「, -1);返回」a' -
SELECT json_array_get('["c", "b", "a"]「, -2);返回」b' 。
如果在指定的索引中沒有 元素存在,函數會返回null 。例如:
-
SELECT json_array_get('[]', 0);返回null -
SELECT json_array_get('["a", "b", "c"]', 10);返回null -
SELECT json_array_get('["c", "b", "a"]', -10);返回null
JSON_EXTRACT
若要評估包含 JSON 的字串的 JSONPath-like 表達式,並將結果回傳為編碼為 JSON 的字串,請使用JSON_EXTRACT 函式,例如:
json_extract(json, json_path) → json
例如:
SELECT json_extract(json,'$.store.book');
注意: 若要將結果以字串而非 編碼為 JSON 的方式傳回,請改用JSON_EXTRACT_SCALAR 函式。
JSON_EXTRACT_SCALAR
若要評估包含 JSON 且引用標量 - 文字、布林或數字 - 值的字串的 JSONPath-like 表達式,並將結果以字串形式傳回,請使用JSON_EXTRACT_SCALAR 函式,如::
json_extract_scalar(json, json_path) → varchar
例如:
SELECT json_extract_scalar(json,'$.store.book[0].author');
SELECT json_extract_scalar('[1,2,3]','$[2]'); 注意: 要以編碼為 JSON 的字串方式傳回結果,請改用JSON_EXTRACT 函式。
JSON_FORMAT
若要以字串形式返回 JSON 語法的值,請使用JSON_FORMAT 函式,例如: SELECT json_format(json '[1, 2, 3]「; 返回 」[1, 2, 3]':
json_format(json) → varchar
例如:
-
SELECT json_format(json '[1, 2, 3]「);返回」[1, 2, 3]' -
SELECT json_format(json '"a"「);返回」"a"'
提示: JSON_FORMAT 函數是JSON_PARSE 函數的逆函數。
JSON_PARSE
要以 JSON 語法解析字串,請使用JSON_PARSE 函式,如::
json_parse(string) → json
例如,SELECT json_parse('[1,2,3]「); 返回JSON 」[1,2,3]'。
提示: JSON_PARSE 函數是JSON_FORMAT 函數的逆函數。
W_JSON_ARRAY_JOIN
若要以分隔字串的方式回傳 JSON 陣列的值,請使用W_JSON_ARRAY_JOIN 函式,例如:
w_json_array_join(array, 'delimiter') → varchar