2016-08-26 2 views

Antwort

2

Edit: Wir haben die JSON-Funktionen vor einiger Zeit implementiert. Sie können über sie in the documentation lesen.

0

Nicht, dass ich kenne, aber es gibt immer umgehen

Nehmen wir an, wir zB aus JSON_EXTRACT_SCALAR Dokumentation

SELECT JSON_EXTRACT_SCALAR('{"a": ["x", {"b":3}]}', '$.a[1].b') as str 

Im Folgenden Code tut gleiche

CREATE TEMPORARY FUNCTION CUSTOM_JSON_EXTRACT(json STRING) 
RETURNS STRING 
LANGUAGE js AS """ 
    try { var parsed = JSON.parse(json); 
    } catch (e) { return null } 
    return parsed.a[1].b; 
"""; 

SELECT CUSTOM_JSON_EXTRACT('{"a": ["x", {"b":3}]}') AS str 

Ich denke, dies imitieren wollen kann ein guter Ausgangspunkt sein, um mit
zu experimentieren, sehen Sie mehr für Scalar UDF in BigQuery Standard SQL

Schnell Update

Nach Tasse Kaffee, beschlossen, diese "Übung" von mir
Blick als eine gute kurzfristige Lösung für mich zu beenden: o)

CREATE TEMPORARY FUNCTION CUSTOM_JSON_EXTRACT(json STRING, json_path STRING) 
RETURNS STRING 
LANGUAGE js AS """ 
    try { var parsed = JSON.parse(json); 
    } catch (e) { return null } 
    return eval(json_path.replace("$", "parsed")); 
"""; 

SELECT 
    CUSTOM_JSON_EXTRACT('{"a": ["x", {"b":3}]}', '$.a[1].b') AS str1, 
    CUSTOM_JSON_EXTRACT('{"a": ["x", {"b":3}]}', '$.a[0]') AS str2, 
    CUSTOM_JSON_EXTRACT('{"a": 1, "b": [4, 5]}', '$.b') AS str3 
Verwandte Themen