Mysql mengonversi teks panjang ke json

JSON adalah alias untuk LONGTEXT yang diperkenalkan untuk alasan kompatibilitas dengan tipe data JSON MySQL. MariaDB mengimplementasikan ini sebagai LONGTEXT, karena tipe data JSON bertentangan dengan standar SQL, dan tolok ukur MariaDB menunjukkan bahwa kinerja setidaknya setara

Untuk memastikan bahwa dokumen json yang valid dimasukkan, fungsi JSON_VALID dapat digunakan sebagai a. Batasan ini secara otomatis disertakan untuk tipe yang menggunakan alias JSON dari MariaDB 10. 4. 3

Contoh

CREATE TABLE t (j JSON);

DESC t;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| j     | longtext | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+

Dengan validasi

CREATE TABLE t2 (
  j JSON 
  CHECK (JSON_VALID(j))
);

INSERT INTO t2 VALUES ('invalid');
ERROR 4025 (23000): CONSTRAINT `j` failed for `test`.`t2`

INSERT INTO t2 VALUES ('{"id": 1, "name": "Monty"}');
Query OK, 1 row affected (0.13 sec)
_

Replikasi Data JSON Antara MySQL dan MariaDB

Jenis JSON di MySQL menyimpan objek JSON dalam bentuk yang ringkas, bukan LONGTEXT seperti di MariaDB. Ini berarti replikasi berbasis baris tidak akan berfungsi untuk tipe JSON dari MySQL ke MariaDB

Ada beberapa cara berbeda untuk menyelesaikan ini

  • Gunakan replikasi berbasis pernyataan
  • Ubah kolom JSON untuk mengetikkan TEXT di MySQL
  • Jika Anda harus menggunakan replikasi berbasis baris dan tidak dapat mengubah master MySQL dari JSON ke TEXT, Anda dapat mencoba memperkenalkan budak MySQL perantara dan mengubah jenis kolom dari JSON ke TEXT di atasnya. Kemudian Anda mereplikasi dari budak perantara ini ke MariaDB

Mengonversi MySQL TABLE dengan JSON Fields ke MariaDB

MariaDB tidak dapat langsung mengakses format JSON MySQL

Ada beberapa cara berbeda untuk memindahkan tabel ke MariaDB

Perbedaan Antara String JSON MySQL dan String JSON MariaDB

Lihat juga

Komentar

Konten yang direproduksi di situs ini adalah milik dari pemiliknya masing-masing, dan konten ini tidak ditinjau sebelumnya oleh MariaDB. Pandangan, informasi, dan opini yang diungkapkan oleh konten ini tidak selalu mewakili MariaDB atau pihak lain mana pun

Artikel ini menjelaskan berbagai cara mengekspor data MySQL ke format file JSON. JSON adalah singkatan dari Notasi Objek JavaScript. Ini adalah format file yang ringan untuk menyimpan dan mentransfer data, biasanya digunakan saat data dikirim dari server ke halaman web

Pada bagian pertama artikel ini, kita akan melihat beberapa fungsi MySQL sebagai salah satu solusi untuk mengekspor data MySQL ke JSON. Selanjutnya, kita akan melihat bagaimana fungsi keluaran MySQL Shell dan JSON dapat digunakan untuk mencapai tujuan yang sama, dan yang terakhir, kita akan mengenal ekstensi, ApexSQL Database Power Tools untuk VS Code dan fitur Ekspor ke JSON

Metode berikut untuk mengekspor akan digunakan

  • dan fungsi
  • dan fungsi
  • Keluaran Format MySQL Shell dan JSON
  • Ekspor ke JSON menggunakan perangkat lunak pihak ketiga

Untuk artikel ini, kode SQL di bawah ini akan digunakan sebagai contoh

CREATE DATABASE addresses;

    USE addresses;
    
    CREATE TABLE location (
      address_id int NOT NULL AUTO_INCREMENT,
      address varchar(50) NOT NULL,
      address2 varchar(50) DEFAULT NULL,
      PRIMARY KEY (address_id)
    );
    
    INSERT INTO location VALUES
    (NULL, '1586 Guaruj Place', '47 MySakila Drive'),
    (NULL, '934 San Felipe de Puerto Plata Street', NULL),
    (NULL, '360 Toulouse Parkway', '270, Toulon Boulevard');

(sumber. Cara mengekspor data MySQL ke CSV)

Mengekspor data MySQL ke JSON menggunakan fungsi CONCAT() dan GROUP_CONCAT()

Menggunakan kombinasi dan fungsi, data dari string SQL dapat diubah menjadi format JSON

Di editor kueri, jalankan kode berikut

SELECT 
    CONCAT("[",
         GROUP_CONCAT(
              CONCAT("{address_id:'",address_id,"'"),
              CONCAT("address:'",address,"'"),
              CONCAT(",address2:'",address2,"'}")
         )
    ,"]") 
AS json FROM location;

Hasilnya akan seperti ini

[{alamat_id. ’1’address. ’1586 Guaruj Place’, alamat2. ’47 MySakila Drive’},{address_id. ’3’alamat. ’360 Toulouse Parkway’, alamat2. ’270, Toulon Boulevard’}]

Mysql mengonversi teks panjang ke json

Untuk mengekspor hasil ini dari hasil kueri ke file JSON, tambahkan satu baris kode lagi

SELECT 
    CONCAT("[",
         GROUP_CONCAT(
              CONCAT("{address_id:'",address_id,"'"),
              CONCAT("address:'",address,"'"),
              CONCAT(",address2:'",address2,"'}")
         )
    ,"]") 
AS json FROM location
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/location.json'
_

Setelah dieksekusi, hasilnya akan seperti pada gambar di bawah ini

Mysql mengonversi teks panjang ke json

  • Lebih lanjut tentang penggunaan INTO OUTFILE dapat ditemukan di artikel Cara mengekspor data MySQL ke CSV

Mengekspor data MySQL ke JSON menggunakan fungsi JSON_OBJECT dan JSON_ARRAYAGG

Fungsi JSON_OBJECT memetakan sejumlah variabel argumen ke objek JSON. Itu membuat daftar pasangan nilai kunci dan mengembalikan objek JSON yang berisi pasangan tersebut. Dengan memberikan setiap pasangan kunci/nilai sebagai dua argumen terpisah. Setiap pasangan menjadi pasangan kunci/nilai dalam objek JSON yang dihasilkan

Ketika kode di bawah ini dijalankan

SELECT JSON_OBJECT
    ('address_id', address_id,
     'address', address, 
     'address2', address2)
      FROM location;

Hasilnya harus seperti ini

Mysql mengonversi teks panjang ke json

Sekarang, mari ubah kode untuk mengekspor data ke file JSON. Jalankan yang berikut ini

SELECT JSON_OBJECT
    ('address_id', address_id,
     'address', address, 
     'address2', address2)
      FROM location INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/location.json'
_

Ketika file JSON yang baru dibuat dibuka, hasilnya akan terlihat seperti ini

Mysql mengonversi teks panjang ke json

Jika Anda ingin hasil ditetapkan sebagai satu baris yang berisi larik JSON dengan satu objek per baris, maka fungsi JSON_ARRAYAGG harus digunakan dalam kombinasi dengan fungsi JSON_OBJECT. Setiap baris dari kumpulan hasil berakhir sebagai elemen tunggal dalam larik

Jalankan hasil di bawah ini untuk melihat hasilnya

SELECT JSON_ARRAYAGG(JSON_OBJECT
    ('address_id', address_id,
     'address', address, 
     'address2', address2))
      FROM location

Mysql mengonversi teks panjang ke json

Tambahkan perintah INTO OUTFILE untuk mengekspor data MySQL ke file JSON

SELECT JSON_ARRAYAGG(JSON_OBJECT
    ('address_id', address_id,
     'address', address, 
     'address2', address2))
      FROM location INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/location.json';
_

Mysql mengonversi teks panjang ke json

  • Catatan. Fungsi JSON_ARRAYAGG tersedia dari server MySQL 8. 0 versi

Ekspor data MySQL ke JSON menggunakan MySQL Shell dan Output Format JSON

MySQL Shell menyediakan beberapa opsi format JSON untuk mencetak kumpulan hasil

  • json – mengembalikan nilai JSON dengan cara yang diformat dengan baik, yang membuatnya lebih mudah dibaca oleh manusia
  • ndjson – mengembalikan JSON mentah yang dibatasi oleh baris baru
  • json/array – mengembalikan JSON mentah yang dibungkus dalam array JSON

Mulai MySQL Shell dan sambungkan ke database tempat Anda ingin mengekspor data

Untuk terhubung ke database, di MySQL Shell jalankan perintah berikut

\hubungkan root@localhost. 33060/alamat

Mysql mengonversi teks panjang ke json

Format file keluaran json

Untuk memformat nilai data dalam keluaran json, di MySQL Shell, jalankan kode berikut

shell.options.set('resultFormat','json') 
_

Mysql mengonversi teks panjang ke json

Setelah itu, jalankan kode berikut untuk menarik data dari tabel lokasi

session.sql("select * from location")

Outputnya akan terlihat seperti ini

  • {
  • “alamat_id”. 1,
  • "alamat". “Tempat Guaruj 1586”,
  • "alamat 2". “47 MySakila Drive”
  • }
  • {
  • “alamat_id”. 2,
  • "alamat". “Jalan San Felipe de Puerto Plata 934”,
  • "alamat 2". batal
  • }
  • {
  • “alamat_id”. 3,
  • "alamat". “Parkway Toulouse 360”,
  • "alamat 2". “270, Boulevard Toulon”
  • }

Mysql mengonversi teks panjang ke json

Format file keluaran ndjson

Di Shell MySQL, jalankan kode berikut untuk mengubah format hasil

shell.options.set('resultFormat','ndjson')

Mysql mengonversi teks panjang ke json

Sekarang, saat kode dieksekusi

session.sql("select * from location")

Hasilnya akan seperti ini

{“alamat_id”. 1, "alamat". ”1586 Guaruj Place”,”alamat2″. ”47 MySakila Drive”}
{“alamat_id”. 2,”alamat”. ”934 San Felipe de Puerto Plata Street”,”alamat2″. batal}
{“alamat_id”. 3, "alamat". ”360 Toulouse Parkway”,”alamat2″. ”270, Toulon Boulevard”}

Mysql mengonversi teks panjang ke json

Format file keluaran json/array

Untuk beralih ke format hasil json/array, di MySQL Shell jalankan kode di bawah ini

SELECT 
    CONCAT("[",
         GROUP_CONCAT(
              CONCAT("{address_id:'",address_id,"'"),
              CONCAT("address:'",address,"'"),
              CONCAT(",address2:'",address2,"'}")
         )
    ,"]") 
AS json FROM location;
1

Mysql mengonversi teks panjang ke json

Sekarang, ketika pernyataan SELECT dijalankan, hasilnya akan terlihat seperti ini

[
{“alamat_id”. 1, "alamat". ”1586 Guaruj Place”,”alamat2″. ”47 MySakila Drive”},
{“alamat_id”. 2,”alamat”. ”934 San Felipe de Puerto Plata Street”,”alamat2″. batal},
{“alamat_id”. 3, "alamat". ”360 Toulouse Parkway”,”alamat2″. ”270, Toulon Boulevard”}
]

Mysql mengonversi teks panjang ke json

Mengekspor data MySQL menggunakan perangkat lunak pihak ketiga

ApexSQL Database Power Tools for VS Code adalah ekstensi yang dapat mengekspor data dari kisi hasil ke dalam format file JSON hanya dalam beberapa langkah. Selain JSON, ekstensi ini memiliki opsi untuk mengekspor data MySQL ke format file CSV, Excel, dan HTML

Untuk mengekspor data, dalam Visual Studio Code di bawah panel explorer server ApexSQL, buka kueri baru

Mysql mengonversi teks panjang ke json

Di editor kueri yang baru dibuka, jalankan pernyataan SELECT dari mana Anda ingin hasilnya diekspor

Mysql mengonversi teks panjang ke json

Di pojok kanan atas kisi hasil, klik ikon Ekspor ke JSON. Di jendela Save As, pilih lokasi untuk mengekspor data MySQL ke file JSON, di bawah File name masukkan nama file dan klik tombol Save

Mysql mengonversi teks panjang ke json

Setelah file disimpan, di pojok kanan bawah aplikasi, muncul pesan info dengan tombol Show. Ketika diklik, itu akan membuka lokasi penyimpanan file

Bagaimana cara mengonversi teks ke JSON di MySQL?

Mengekspor data MySQL ke JSON menggunakan fungsi CONCAT() dan GROUP_CONCAT() . Menggunakan kombinasi fungsi CONCAT() dan GROUP_CONCAT(), data dari string SQL dapat diubah menjadi format JSON.

Bagaimana cara mendapatkan data JSON dari kueri MySQL?

Untuk objek JSON, jalur ditentukan dengan $. key , dimana key adalah kunci dari objek. .
Gunakan $. .
Gunakan $[indeks] untuk mengekstrak nilai elemen dari larik JSON
Gunakan -> sebagai jalan pintas untuk JSON_EXTRACT jika nilainya bukan string

Bagaimana cara membuat tipe data JSON di MySQL?

Kita dapat mendefinisikan kolom tipe data JSON di tabel MySQL menggunakan indeks berikut. BUAT TABEL table_name ( .
BUAT acara TABEL (
event_id INT AUTO_INCREMENT PRIMARY KEY,
event_name varchar(75),
pengunjung varchar(25),
properti json,
browser_name json

Bagaimana cara memperbarui tipe data teks di MySQL?

Berikut adalah sintaks untuk mengubah tipe data kolom di MySQL. .
ALTER TABLE table_name
MODIFIKASI tipe data nama_kolom;