Перейти к содержимому

Конвертация JSON в PostgreSQL

Перетащите файл JSON, чтобы получить скрипт для PostgreSQL с командами CREATE TABLE и INSERT. Каждый столбец получает тип, а каждое исправление указано со строкой и столбцом.

Ваш файл
jsonpedidos_2024.jsonПример файла, 771 Б
Ваша база данных

4 строки конвертированы, 2 исправления, ни одна не отклонена

Показать
Первые строки pedidos_2024.json, каждое исправление отмечено
Строка
2000481Peña Muñoz2024-02-03T10:15:00Z1234.5true
3000482José Ángel Ruiz2024-02-15T16:40:00Z99.9falseEntrega en la tarde
4000483Zoë Ortíz2024-02-29T09:05:00Z12true
5000484Ñuño Castañeda2024-03-11T13:30:00Z980.75síFactura con "RFC"
-- Written by IntoSQL for PostgreSQL.

SET client_encoding = 'UTF8';
BEGIN;

CREATE TABLE pedidos_2024 (
    pedido text NOT NULL,
    cliente text NOT NULL,
    fecha timestamptz NOT NULL,
    total numeric(6,2) NOT NULL,
    pagado boolean NOT NULL,
    notas text
);

INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00+00:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00+00:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00+00:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00+00:00', 980.75, TRUE, 'Factura con "RFC"');

COMMIT;

Исправления

  1. В "pedido" сохранены ведущие нули: 000481 остается 000481 и хранится как текст.
  2. "pagado" содержит слова да и нет (sí), они сохранены как логические значения.

Файл конвертируется на этом компьютере и никуда не загружается.

Другие примеры:

Из JSON в PostgreSQL, столбец за столбцом

Пример выше, pedidos_2024.json, в том виде, в котором IntoSQL записывает его для PostgreSQL: что хранит каждый столбец в файле, какой тип он получает и как его первое значение попадает в скрипт.

В файлеПервое значениеСтолбецТип в PostgreSQLВ скрипте
pedido000481pedidotext'000481'
clientePeña Muñozclientetext'Peña Muñoz'
fecha2024-02-03T10:15:00Zfechatimestamptz'2024-02-03 10:15:00+00:00'
total1234.5totalnumeric(6,2)1234.5
pagadotruepagadobooleanTRUE
notas-notastextNULL

Загрузите скрипт в PostgreSQL

Вы скачиваете обычный файл .sql. Запустите его штатными средствами PostgreSQL.

Из терминала

psql -v ON_ERROR_STOP=1 -d mydb -f pedidos_2024.postgresql.sql

ON_ERROR_STOP останавливает psql на первой ошибке. Скрипт выполняется в одной транзакции, поэтому неудачная загрузка оставляет базу без изменений.

Из клиента базы данных

В pgAdmin или DBeaver откройте скрипт в окне запроса и выполните его.

Без скриптаPro

IntoSQL Pro загружает файл прямо в PostgreSQL из приложения для компьютера или командной строки, без написания скрипта.

intosql load pedidos_2024.json --into postgres://user@localhost/mydb

Что нужно знать о файлах JSON и PostgreSQL

Что IntoSQL читает в файлах JSON

  • Файл может быть массивом объектов, объектом, который хранит этот массив под ключом вроде data, или одним объектом на строку (NDJSON).
  • Каждый ключ становится столбцом. Объекты и массивы внутри значения сохраняются как текст JSON.
  • Числа сохраняют все свои цифры, а даты ISO 8601 становятся датами или метками времени.

Что нужно знать о PostgreSQL

  • Десятичные числа сохраняют все цифры как numeric(p,s), а даты со смещением становятся timestamptz.
  • Текст в PostgreSQL не может содержать символ NUL, поэтому он удаляется из значений, где встречается.
  • Скрипт выполняется в одной транзакции, поэтому неудачная загрузка не оставляет ничего наполовину.

Как каждый вид значений хранится в PostgreSQL

ЗначениеPostgreSQL
Да и нетboolean
Целые числаinteger
Большие целые числаbigint
Десятичные числаnumeric(p,s)
Числа с плавающей точкойdouble precision
Датыdate
Время сутокtime
Даты со временемtimestamp
Даты со временем и смещениемtimestamptz
Текстtext

Вопросы о JSON в PostgreSQL

Нет ответа на ваш вопрос? Напишите нам через страницу контактов, и вам ответит человек. Страница контактов

Как конвертировать JSON в PostgreSQL?

Перетащите файл в конвертер в верхней части этой страницы. Он находит заголовок, читает каждое значение и записывает скрипт для PostgreSQL, перечисляя каждое исправление. Скачайте скрипт и запустите его через psql.

Какой структуры должен быть файл JSON?

Массив объектов, объект с таким массивом под ключом вроде data или по одному объекту в строке (NDJSON). Каждый ключ становится столбцом.

Какие типы PostgreSQL используются?

Значения да и нет становятся boolean, целые числа integer, дробные numeric(p,s), даты date, даты со временем timestamp, а текст text. Размеры берутся по самому длинному значению в каждом столбце.

Сохраняются ли ведущие нули в PostgreSQL?

Да. Код вроде 000481 остается текстом, поэтому PostgreSQL хранит его как text, а скрипт записывает как '000481'.

Можно ли загрузить данные в PostgreSQL без скрипта?

Да, с IntoSQL Pro. Приложение для компьютера и командная строка подключаются к PostgreSQL и загружают строки напрямую, сначала создав таблицу.

Насколько большим может быть файл JSON?

NDJSON, по одному объекту в строке, читается потоково, поэтому в браузере работают файлы в несколько гигабайт. Документ JSON читается целиком, поэтому его предел - память, которую браузер выделяет этой странице. Приложение для компьютера и командная строка принимают файлы любого размера.