Przejdź do treści

Konwersja JSON do MySQL

Upuść plik JSON, aby dostać skrypt MySQL 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 MySQL.

SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;

CREATE TABLE pedidos_2024 (
    pedido varchar(8) NOT NULL,
    cliente varchar(16) NOT NULL,
    fecha datetime NOT NULL,
    total decimal(6,2) NOT NULL,
    pagado tinyint(1) NOT NULL,
    notas varchar(32)
) DEFAULT CHARSET=utf8mb4;

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

COMMIT;

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 MySQL, kolumna po kolumnie

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

W plikuPierwsza wartośćKolumnaTyp w MySQLW skrypcie
pedido000481pedidovarchar(8)'000481'
clientePeña Muñozclientevarchar(16)'Peña Muñoz'
fecha2024-02-03T10:15:00Zfechadatetime'2024-02-03 10:15:00'
total1234.5totaldecimal(6,2)1234.5
pagadotruepagadotinyint(1)TRUE
notas-notasvarchar(32)NULL

Załaduj skrypt do MySQL

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

Z terminala

mysql --default-character-set=utf8mb4 mydb < pedidos_2024.mysql.sql

Skrypt sam ustawia utf8mb4; flaga sprawia, że klient wysyła go tak samo, więc polskie znaki docierają bez zmian.

Z narzędzia bazodanowego

W MySQL Workbench wybierz File, Run SQL Script i wskaż plik.

Bez skryptuPro

IntoSQL Pro ładuje plik prosto do MySQL z aplikacji na komputer lub wiersza poleceń, bez pisania skryptu.

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

Co warto wiedzieć o plikach JSON i MySQL

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 MySQL

  • Wartości tak i nie stają się tinyint(1). Tekst do 255 znaków to varchar; dłuższy tekst to text, mediumtext lub longtext, zależnie od rozmiaru.
  • Skrypt używa utf8mb4 i ustawia tryb SQL, więc znaki diakrytyczne, emoji, ukośniki wsteczne i podziały wierszy ładują się tak, jak zostały zapisane.
  • Typ datetime w MySQL nie zapisuje strefy czasowej.

Jak każdy rodzaj wartości jest zapisywany w MySQL

WartośćMySQL
Tak i nietinyint(1)
Liczby całkowiteint
Duże liczby całkowitebigint
Liczby dziesiętnedecimal(p,s)double
Liczby zmiennoprzecinkowedouble
Datydate
Godzinytime(6)time
Daty z godzinądatetime(6)datetime
Daty z godziną i przesunięciemdatetime(6)datetime
Tekstvarchar(n)textmediumtextlongtext

Pytania o JSON do MySQL

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

Jak przekonwertować JSON do MySQL?

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

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 MySQL używa?

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

Czy zachowuje zera wiodące w MySQL?

Tak. Kod taki jak 000481 pozostaje tekstem, więc MySQL przechowuje go jako varchar(8), a skrypt zapisuje go jako '000481'.

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

Tak, z IntoSQL Pro. Aplikacja na komputer i wiersz poleceń łączą się z MySQL i ładują wiersze bezpośrednio, najpierw tworząc tabelę.

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.