Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

JSON_QUOTE() – Cara Menghilangkan Karakter dalam String yang digunakan sebagai Nilai JSON di MySQL

Saat bekerja dengan JSON dan MySQL, terkadang Anda mungkin perlu melepaskan string agar karakter kutipannya tidak mengganggu interpretasi dokumen JSON. Dalam kasus seperti itu, Anda dapat menggunakan JSON_QUOTE() berfungsi untuk menghindari string yang berpotensi bermasalah.

JSON_QUOTE() digunakan untuk menghasilkan literal string JSON yang valid yang dapat disertakan dalam dokumen JSON. Misalnya, Anda mungkin ingin elemen dalam larik memiliki teks null sebagai string literal, daripada memiliki nilai null yang sebenarnya. Fungsi ini dapat digunakan untuk memastikan bahwa teks ditambahkan sebagai string literal, bukan nilai null.

Untuk menggunakannya, cukup panggil fungsi sambil meneruskan string.

Sintaks

Sintaksnya seperti ini:

JSON_QUOTE(string)

Dimana string adalah string yang akan diloloskan.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh untuk didemonstrasikan.

Pertama, mari kita lihat apa yang terjadi ketika kita menggunakan JSON_ARRAY() berfungsi untuk membuat larik.

SELECT JSON_ARRAY("Panas", "Hangat", "Dingin") SEBAGAI 'Hasil';

Hasil:

+-------------------------+| Hasil |+-----------------------+| ["Panas", "Hangat", "Dingin"] |+-------------------------+

Hasilnya adalah array yang berisi 3 elemen. Kita tahu ini array karena dimulai dengan tanda kurung siku pembuka ([ ) dan diakhiri dengan kurung siku penutup (] ). Kita juga tahu bahwa setiap elemen adalah string, karena dikelilingi oleh tanda kutip ganda. Koma memisahkan setiap elemen.

Sekarang mari kita lihat apa yang terjadi ketika kita menggunakan JSON_QUOTE() sebagai gantinya.

SELECT JSON_QUOTE('"Panas", "Hangat", "Dingin"') SEBAGAI 'Hasil';

Hasil:

+-------------------------------+| Hasil |+-------------------------------+| "\"Panas\", \"Hangat\", \"Dingin\"" |+----------------------------- --+

Kami tidak mendapatkan array. Kami mendapatkan string. Kami tahu ini adalah string karena dimulai dan diakhiri dengan karakter tanda kutip ganda. Setiap tanda kutip ganda dalam string diloloskan dengan karakter garis miring terbalik (\ ).

Jika karakter ini tidak lolos, tanda kutip ganda pertama (setelah Hot ) secara tidak sengaja akan menghentikan string. Oleh karena itu, kami tidak akan dapat memasukkan sisa string. Dengan mengeluarkan karakter tertentu, kami memberi tahu MySQL untuk tidak menafsirkan karakter tersebut seperti biasanya.

Contoh 2 – Angka

Konsep yang sama berlaku untuk angka, kecuali bahwa angka tidak diapit oleh tanda kutip ganda.

Jadi kita bisa membuat array yang berisi 3 elemen, yang semuanya adalah angka.

SELECT JSON_ARRAY(1, 2, 3) SEBAGAI 'Hasil';

Hasil:

+-----------+| Hasil |+------------+| [1, 2, 3] |+-----------+

Dan inilah yang terjadi jika kita beralih ke JSON_QUOTE() fungsi.

SELECT JSON_QUOTE('[1, 2, 3]') SEBAGAI 'Hasil';

Hasil:

+-------------+| Hasil |+-------------+| "[1, 2, 3]" |+-------------+

Jadi kita mendapatkan hasil yang sama, kecuali bahwa seluruh array diapit oleh tanda kutip ganda. Ini menjadikannya string, bukan array.

Contoh 3 – Menambahkan ke Array/Objek

Kita dapat mengambil string ini secara literal dan menambahkannya sebagai elemen dalam array.

SELECT JSON_ARRAY(JSON_QUOTE('[1, 2, 3]'), 8, 9) SEBAGAI 'Hasil';

Hasil:

+-------------------------+| Hasil |+-----------------------+| ["\"[1, 2, 3]\"", 8, 9] |+-------------------------+

Dalam hal ini, string literal adalah elemen pertama, dengan 8 dan 9 menjadi elemen kedua dan ketiga masing-masing.

Kita juga bisa menggunakan string literal ini dalam sebuah objek.

SELECT JSON_OBJECT('Kunci', JSON_QUOTE('[1, 2, 3]')) SEBAGAI 'Hasil';

Hasil:

+--------------------------+| Hasil |+--------------------------+| {"Kunci":"\"[1, 2, 3]\""} |+--------------------------+ 

Contoh 4 – Mengekstrak Nilai

Jadi jika kita perlu mengekstrak nilai dari dokumen JSON kita, itu akan ditafsirkan sebagai string literal, bukan array.

Pertama, inilah yang terjadi jika kita menetapkan array dengan tiga angka sebagai elemen terpisah, lalu mengekstrak elemen pertama dari array.

SET @data1 =JSON_ARRAY(1, 2, 3);SELECT @data1 AS '@data1', JSON_EXTRACT(@data1, '$[0]');

Hasil:

+-----------+------------------------------+| @data1 | JSON_EXTRACT(@data1, '$[0]') |+-----------+------------------------ ------+| [1, 2, 3] | 1 |+-----------+------------------------------+

Jadi array ini terdiri dari tiga elemen – setiap elemen adalah elemen terpisah dalam array.

Sekarang, inilah yang terjadi jika kita menggunakan JSON_QUOTE() agar ketiga angka dan tanda kurung sikunya diubah menjadi string literal, tambahkan itu ke array, lalu ekstrak elemen pertama array.

SET @data2 =JSON_ARRAY(JSON_QUOTE('[1, 2, 3]'));SELECT @data2 AS '@data2', JSON_EXTRACT(@data2, '$[0]');

Hasil:

+-------------------+-------------------------- ----+| @data2 | JSON_EXTRACT(@data2, '$[0]') |+-------------------+---------------- --------------+| ["\"[1, 2, 3]\""] | "\"[1, 2, 3]\"" |+-------------------+--------------- ---------------+

Jadi dalam hal ini, array hanya terdiri dari satu elemen – seluruh string literal.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Bergabung dengan MySQL dan Postgres dalam Tampilan Terwujud Langsung

  2. Cara memilih nama kolom dengan spasi di MySQL

  3. Tip Singkat MySQL:Menggunakan Perintah DROP USER

  4. MySQL:Beberapa baris sebagai baris tunggal yang dipisahkan koma

  5. Bagaimana menghubungkan ke database menggunakan Sequel Pro