# JSON-Funktionen

JSON-Funktionen werden verwendet, um Daten vom Typ String zu manipulieren.

# JSONExtractString

Analysiert ein JSON und extrahiert einen String. Wenn der Wert nicht vorhanden ist oder einen falschen Typ hat, wird ein leerer String zurückgegeben. Der Wert wird unescaped. Wenn das Unescaping fehlgeschlagen ist, wird ein leerer String zurückgegeben.

JSONExtractString(json[, indices_or_keys])

Beispiele

SELECT JSONExtractString('{"a": "hello", "b": [-100, 200.0, 300]}', 'a') = 'hello'
SELECT JSONExtractString('{"abc":"\\n\\u0000"}', 'abc') = '\n\0'
SELECT JSONExtractString('{"abc":"\\u263a"}', 'abc') = '☺'
SELECT JSONExtractString('{"abc":"\\u263"}', 'abc') = ''
SELECT JSONExtractString('{"abc":"hello}', 'abc') = ''

# toJSONString

Serialisiert einen Wert in seine JSON-Repräsentation. Verschiedene Datentypen und verschachtelte Strukturen werden unterstützt. 64-Bit-Integer oder größer (wie UInt64 oder Int128) werden standardmäßig in Anführungszeichen eingeschlossen. Die Sonderwerte NaN und inf werden durch null ersetzt. Beim Serialisieren eines Enum-Werts gibt die Funktion dessen Namen aus.

toJSONString(value)

Argumente

  • value - Zu serialisierender Wert. Der Wert kann jeden Datentyp haben.

Rückgabewert

  • JSON-Repräsentation des Werts.
  • Typ: String

Beispiel

SELECT toJSONString(‘a:b’) = "a:b" 
SELECT toJSONString(123456) = 123456
SELECT toJSONString(0x64) = 100

# JSONExtractArrayRaw

Gibt ein Array mit Elementen des JSON-Arrays zurück, wobei jedes Element als unanalysierter String dargestellt wird. Wenn der Teil nicht vorhanden ist oder kein Array ist, wird ein leeres Array zurückgegeben.

JSONExtractArrayRaw(json[, indices_or_keys…])

Beispiel

SELECT JSONExtractArrayRaw('{"a": "hello", "b": [-100, 200.0, "hello"]}', 'b') = ['-100', '200', '"hello"'];
INSERT INTO ChatArXivSELECT 
            abstract, 
            id, 
            vector, 
            metadata, 
            parseDateTimeBestEffort(JSONExtractString(toJSONString(metadata), 'pubdate')) AS pubdate, 
            JSONExtractString(toJSONString(metadata), 'title') AS title, 
            arrayMap(x->trim(BOTH '"' FROM x), 
            JSONExtractArrayRaw(toJSONString(metadata), 'categories')) AS categories, 
            arrayMap(x->trim(BOTH '"' FROM x), 
            JSONExtractArrayRaw(toJSONString(metadata), 'authors')) AS authors, 
            JSONExtractString(toJSONString(metadata), 'comment') AS comment, 
            JSONExtractString(toJSONString(metadata), 'primary_category') AS primary_category
FROM s3( 'https://myscale-demo.s3.ap-southeast-1.amazonaws.com/chat_arxiv/data.part*.zst', 'JSONEachRow', 'abstract String, id String, vector Array(Float32), metadata Object(''JSON'')', 'zstd' )
Last Updated: Thu Apr 11 2024 02:40:52 GMT+0000