:: Не фоксом единым
Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
tata

Сообщений: 3458
Откуда: Казань
Дата регистрации: 23.10.2005
Всем привет.
Получила задачу - закачать json-файл в таблицу postgres.
Файл выглядит так:
[{\"RowID\":\"20202\",\"Cell\":\"ВходОcтРуб\",\"Value\":\"01010\",\"Type\":\"Numeric\"}].
Таблицу создала.
CREATE TABLE dh.t_json(
RowID int generated always as identity NOT NULL,
Cell varchat(5) NOT NULL,
Value text NOT NULL,
Type Numeric NULL
);
ALTER TABLE dh.t_json OWNER TO postgres;

ALTER TABLE dh.t_json
ADD CONSTRAINT pk_t_json_pattern PRIMARY KEY (id);
Теперь бы распарсить. А как?
Что за странные слеши внутри?
И, насколько я знаю,
запись — это неупорядоченное множество пар ключ:значение, заключённое в фигурные скобки «{ }». Ключ описывается строкой, между ним и значением стоит символ «:». Пары ключ-значение отделяются друг от друга запятыми.
массив (одномерный) — это упорядоченное множество значений. Массив заключается в квадратные скобки «[ ]». Значения разделяются запятыми. Массив может быть пустым, то есть не содержать ни одного значения. Значения в пределах одного массива могут иметь разный тип.
Получается, что это массив из json объектов, которые нужно сохранять.



Исправлено 1 раз(а). Последнее : tata, 04.02.23 22:22
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
tata
Всем привет.
Получила задачу - закачать json-файл в таблицу postgres.
Файл выглядит так:
[{\"RowID\":\"20202\",\"Cell\":\"ВходОcтРуб\",\"Value\":\"01010\",\"Type\":\"Numeric\"}].

Что за странные слеши внутри?
Экранирование двойных кавычек. То есть они часть значений и не должны резаться.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Но после более внимательного рассмотрения твоего примера приходим к выводу, 'то это не сам JSON, а какой-то конверт/котейнер с ним. Сам JSON должен выглядеть вот так:
{
"RowID": "20202",
"Cell": "ВходОcтРуб",
"Value": "01010",
"Type": "Numeric"
}
То есть без наружных квадратных скобок и без экранирующих символов в виде обратных слешей.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
select * from json_to_record('{"rowid":"20202","cell":"ВходОcтРуб","value":"01010","type": "Numeric"}')
as t(rowid text, cell varchar, value varchar, type varchar);


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
Sega
Автор

Сообщений: 511
Откуда: Ярославль
Дата регистрации: 27.12.2000
Наружные квадратные скобки указывают на то, что это массив JSON структур.
По крайней мере исходная конструкция
[{
	"RowID": "20202",
	"Cell": "ВходОcтРуб",
	"Value": "01010",
	"Type": "Numeric"
}]
валидацию проходит
Ratings: 0 negative/1 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
- пропусти его через интернет-конвертер "всего-ао-всё"
- забыл уже.. у Тани типичный JSON (экранировние кавычек обратным слешем), и... ? Вопрос то какой?

() бл... недавно рекламировал код перевода, идею..., интересно сработает ли на ...



Исправлено 1 раз(а). Последнее : of63, 15.02.23 01:20
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
наружные квадратные скобки - это "1-массив" в жисоне...
Доб, в составе м.б. любые жисон обьекты, в т.ч сами жисон обьекты... интригующе )



Исправлено 1 раз(а). Последнее : of63, 15.02.23 01:34
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Sega
Наружные квадратные скобки указывают на то, что это массив JSON структур.
По крайней мере исходная конструкция
[{
	"RowID": "20202",
	"Cell": "ВходОcтРуб",
	"Value": "01010",
	"Type": "Numeric"
}]
валидацию проходит

Sega! А ка принять это файл, прошедшй валидацию, превратить его в DBF например?! )
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
это массив из одного элемента-обьекта, и?

аа "Теперь бы распарсить. А как?"
как как, встроенными средствами ЯП, и конструкциями на нем...
() и что хотелось бы экзаменатору видеть в ответе



Исправлено 2 раз(а). Последнее : of63, 15.02.23 13:40
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
of63
это массив из одного элемента-обьекта, и?
аа "Теперь бы распарсить. А как?"
как как, встроенными средствами ЯП, и конструкциями на нем...
() и что хотелось бы экзаменатору видеть в ответе
Олег, ты мой ответ от 05.02.23 12:06:47 не видишь? Или не хочешь видеть?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Сергей, четче выражай народу сетенции! )

() Стареем...
()() youtu.be Щас просто уе. всех нехороших варианты.
. Серега, ты вне претензий



Исправлено 1 раз(а). Последнее : of63, 15.02.23 21:27
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
of63
Сергей, четче выражай народу сетенции! )
() Стареем...
()() youtu.be Щас просто уе. всех нехороших варианты.
. Серега, ты вне претензий

select * from json_to_record('{"rowid":"20202","cell":"ВходОcтРуб","value":"01010","type": "Numeric"}')
as t(rowid text, cell varchar, value varchar, type varchar);


Что за фигня.. функция json_to_record ? в ней мое непонимание?
Ratings: 0 negative/0 positive
Re: Надо закачать json-файл в таблицу PostgreSQl. Но он какой-то странный.
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
of63
of63
Сергей, четче выражай народу сетенции! )
() Стареем...
()() youtu.be Щас просто уе. всех нехороших варианты.
. Серега, ты вне претензий

select * from json_to_record('{"rowid":"20202","cell":"ВходОcтРуб","value":"01010","type": "Numeric"}')
as t(rowid text, cell varchar, value varchar, type varchar);


Что за фигня.. функция json_to_record ? в ней мое непонимание?
Функция такая есть в Postgres. Изучай.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 5 (Гостей: 5)

© 2000-2024 Fox Club 
Яндекс.Метрика