184 похожих чатов

Привет! Помогите пожалуйста разобраться с json. У меня есть строка,

которая хранит массив json упрощенный пример: "[{"title":"Sport"}, {"title":"Electronics"}]"

Как мне получить из неё title? Это валидный json, но в доке нет ни одного примера на работу с массивом таким. Может его можно как-то перевести в массив нормально

19 ответов

16 просмотров

arrayMap, потом extractParamString или JSon чето там

Sergey-Lomdjaria Автор вопроса
Dmnk ninja
arrayMap, потом extractParamString или JSon чето т...

Так в том-то и проблема что это не массив, а строка в которой записан массив, поэтому arrayMap не могу использовать

Sergey-Lomdjaria Автор вопроса
Dmnk ninja
split сделайте

пример выше был с упрощением, там вложенная структура, и просто split не зайдет поэтому

Sergey Lomdjaria
пример выше был с упрощением, там вложенная структ...

по итогу в у вас просто огромная странная строка?

Sergey-Lomdjaria Автор вопроса
Dmnk ninja
по итогу в у вас просто огромная странная строка?

ну она да большая, и странная, но является валидным json

Sergey Lomdjaria
пример выше был с упрощением, там вложенная структ...

у вас не вложеная структура случаем? https://clickhouse.tech/docs/ru/sql-reference/data-types/nested-data-structures/nested/

Sergey-Lomdjaria Автор вопроса
Dmnk ninja
у вас не вложеная структура случаем? https://cli...

Там динамическая структура (ну типа в некоторых строках есть в некоторых нет. Походу реально лучше всего будет переложить эту колонку сразу в массив

Sergey Lomdjaria
Там динамическая структура (ну типа в некоторых ст...

ну немного мал овволдных сорре, если это раковая строка какая то то по шапке надавать тому кто это делает, или попробовать raw заюзать

Sergey-Lomdjaria Автор вопроса
Dmnk ninja
ну немного мал овволдных сорре, если это раковая с...

Raw попробовал, но проблема, что CH функции с json кажется работают только объектами json, т.е например {'a':1, 'b':2, 'c': [1, 2, 3] } но не могут, когда у нас всё завернуто в массив [{'a':1, 'b':2, 'c': [1, 2, 3] }]

Sergey-Lomdjaria Автор вопроса
Dmnk ninja
жаль жаль :(

но спасибо за помощь)

Sergey Lomdjaria
Raw попробовал, но проблема, что CH функции с json...

А в чем проблема? WITH '[{"a":1, "b":2, "c": [1, 2, 3] }]' AS x SELECT JSONExtract(x, 'Nested(a UInt32, b UInt32, c Array(UInt32))') Query id: 855df5d8-90da-4513-8dd0-fcce5558f6af ┌─JSONExtract(x, 'Nested(a UInt32, b UInt32, c Array(UInt32))')─┐ │ [(1,2,[1,2,3])] │ └───────────────────────────────────────────────────────────────┘

Sergey-Lomdjaria Автор вопроса
Dmitry [Altinity] Titov
А в чем проблема? WITH '[{"a":1, "b":2, "c": [1, ...

О, спасибо большое! Через Nested получилось, по крайней мере моя задача решается. Но опять, же, оно работает, пока фиксирован уровень вложенности

Sergey Lomdjaria
О, спасибо большое! Через Nested получилось, по кр...

Ну а что вы хотите в случае динамики? Ну можете посмотреть на поддержку JSONPATH https://github.com/ClickHouse/ClickHouse/pull/24148

А не подойдет просто extractAll? with '[{"title":"Sport"}, {"title":"Electronics"}]' as str select extractAll(str, '"title":"([^"]*)"');

Sergey-Lomdjaria Автор вопроса
Sergey Churin
А не подойдет просто extractAll? with '[{"title":...

👍 Большое спасибо, что-то я затупил и не догадался через регулярку достать

select JSONExtract('[{"title":"Sport"}, {"title":"Electronics"}, {"botitle":"xxxx"}]', 'Array(Tuple(title String))').1 x; ┌─x──────────────────────────┐ │ ['Sport','Electronics',''] │ └────────────────────────────┘

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта