Przejdź do treści

Konwersja JSON do SQL Server

Upuść plik JSON, aby dostać skrypt SQL Server z instrukcjami CREATE TABLE i INSERT. Każda kolumna dostaje typ, a każda poprawka jest wymieniona z wierszem i kolumną.

Twój plik
jsonpedidos_2024.jsonPlik przykładowy, 771 B
Twoja baza danych

4 wiersze przekonwertowane, 2 poprawki, brak odrzuconych

Pokaż
Pierwsze wiersze pliku pedidos_2024.json, z zaznaczoną każdą poprawką
Wiersz
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;

Poprawki

  1. Zachowano zera wiodące w "pedido": 000481 pozostaje 000481, zapisane jako tekst.
  2. "pagado" zawiera słowa tak i nie (sí), zapisane jako wartości logiczne.

Plik jest konwertowany na tym komputerze i nigdy nie jest wysyłany.

Inne przykłady:

Z JSON do SQL Server, kolumna po kolumnie

Przykład powyżej, pedidos_2024.json, tak jak IntoSQL zapisuje go dla SQL Server: co zawiera każda kolumna w pliku, jaki dostaje typ i jak jej pierwsza wartość trafia do skryptu.

W plikuPierwsza wartośćKolumnaTyp w SQL ServerW skrypcie
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

Załaduj skrypt do SQL Server

Pobierasz zwykły plik .sql. Uruchom go narzędziami SQL Server.

Z terminala

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

-f 65001 odczytuje plik jako UTF-8, więc znaki diakrytyczne i ñ docierają tak, jak je zapisano.

Z narzędzia bazodanowego

W SQL Server Management Studio lub Azure Data Studio otwórz plik i wybierz Execute.

Co warto wiedzieć o plikach JSON i SQL Server

Co IntoSQL odczytuje w plikach JSON

  • Plik może być tablicą obiektów, obiektem, który trzyma tę tablicę pod kluczem takim jak data, albo jednym obiektem na wiersz (NDJSON).
  • Każdy klucz staje się kolumną. Obiekty i tablice wewnątrz wartości są zachowywane jako tekst JSON.
  • Liczby zachowują dokładne cyfry, a daty ISO 8601 stają się datami lub znacznikami czasu.

Co warto wiedzieć o SQL Server

  • Tekst to nvarchar z wartościami N'...', więc znaki diakrytyczne zostają zachowane; tekst powyżej 4000 znaków staje się nvarchar(max).
  • Wartości tak i nie stają się bit, a daty z przesunięciem stają się datetimeoffset.
  • Długie wartości są zapisywane w częściach, więc sqlcmd i SQL Server Management Studio akceptują skrypt.

Jak każdy rodzaj wartości jest zapisywany w SQL Server

WartośćSQL Server
Tak i niebit
Liczby całkowiteint
Duże liczby całkowitebigint
Liczby dziesiętnedecimal(p,s)
Liczby zmiennoprzecinkowefloat
Datydate
Godzinytime
Daty z godzinądatetime2
Daty z godziną i przesunięciemdatetimeoffset
Tekstnvarchar(n)nvarchar(max)

Pytania o JSON do SQL Server

Nie ma tu odpowiedzi? Napisz do nas przez stronę kontaktu, a odpowie człowiek. Strona kontaktu

Jak przekonwertować JSON do SQL Server?

Upuść plik na konwerter u góry tej strony. Znajduje nagłówek, odczytuje każdą wartość i zapisuje skrypt SQL Server, wymieniając każdą poprawkę. Pobierz skrypt i uruchom go za pomocą sqlcmd.

Jaki kształt musi mieć plik JSON?

Tablica obiektów, obiekt zawierający taką tablicę pod kluczem, na przykład data, albo jeden obiekt w każdym wierszu (NDJSON). Każdy klucz staje się kolumną.

Jakich typów SQL Server używa?

Wartości tak i nie stają się bit, liczby całkowite int, liczby dziesiętne decimal(p,s), daty date, daty z godziną datetime2, a tekst nvarchar(n). Rozmiary wynikają z najdłuższej wartości w każdej kolumnie.

Czy zachowuje zera wiodące w SQL Server?

Tak. Kod taki jak 000481 pozostaje tekstem, więc SQL Server przechowuje go jako nvarchar(8), a skrypt zapisuje go jako N'000481'.

Czy może załadować dane do SQL Server bez skryptu?

Nie. Pobierz skrypt i uruchom go za pomocą sqlcmd. Ładowanie bez skryptu działa dla PostgreSQL, MySQL, MariaDB i SQLite, z aplikacji na komputer lub wiersza poleceń.

Jak duży może być plik JSON?

NDJSON, jeden obiekt w wierszu, jest odczytywany strumieniowo, więc w przeglądarce działają pliki o wielkości kilku gigabajtów. Dokument JSON jest odczytywany w całości, więc jego limitem jest pamięć, jaką przeglądarka daje tej stronie. Aplikacja na komputer i wiersz poleceń przyjmują pliki dowolnej wielkości.