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

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

Перетащите файл JSON, чтобы получить скрипт для SQL Server с командами 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 SQL Server.

SET NOCOUNT ON;
BEGIN TRANSACTION;

CREATE TABLE pedidos_2024 (
    pedido nvarchar(8) NOT NULL,
    cliente nvarchar(16) NOT NULL,
    fecha datetimeoffset NOT NULL,
    total decimal(6,2) NOT NULL,
    pagado bit NOT NULL,
    notas nvarchar(32)
);

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

COMMIT TRANSACTION;

Исправления

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

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

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

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

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

В файлеПервое значениеСтолбецТип в SQL ServerВ скрипте
pedido000481pedidonvarchar(8)N'000481'
clientePeña Muñozclientenvarchar(16)N'Peña Muñoz'
fecha2024-02-03T10:15:00Zfechadatetimeoffset'2024-02-03T10:15:00+00:00'
total1234.5totaldecimal(6,2)1234.5
pagadotruepagadobit1
notas-notasnvarchar(32)NULL

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

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

Из терминала

sqlcmd -S localhost -d mydb -f 65001 -i pedidos_2024.sql_server.sql

-f 65001 читает файл как UTF-8, поэтому кириллица и ñ доходят в том виде, в котором записаны.

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

В SQL Server Management Studio или Azure Data Studio откройте файл и выберите Execute.

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

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

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

Что нужно знать о SQL Server

  • Текст хранится как nvarchar со значениями N'...', поэтому диакритика сохраняется; текст длиннее 4000 символов становится nvarchar(max).
  • Значения да и нет становятся bit, а даты со смещением становятся datetimeoffset.
  • Длинные значения записываются частями, поэтому sqlcmd и SQL Server Management Studio принимают скрипт.

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

ЗначениеSQL Server
Да и нетbit
Целые числаint
Большие целые числаbigint
Десятичные числаdecimal(p,s)
Числа с плавающей точкойfloat
Датыdate
Время сутокtime
Даты со временемdatetime2
Даты со временем и смещениемdatetimeoffset
Текстnvarchar(n)nvarchar(max)

Вопросы о JSON в SQL Server

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

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

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

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

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

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

Значения да и нет становятся bit, целые числа int, дробные decimal(p,s), даты date, даты со временем datetime2, а текст nvarchar(n). Размеры берутся по самому длинному значению в каждом столбце.

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

Да. Код вроде 000481 остается текстом, поэтому SQL Server хранит его как nvarchar(8), а скрипт записывает как N'000481'.

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

Нет. Скачайте скрипт и запустите его через sqlcmd. Загрузка без скрипта работает для PostgreSQL, MySQL, MariaDB и SQLite из приложения для компьютера или командной строки.

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

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