SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Format Hasil SQLite sebagai JSON

Anda dapat menampilkan hasil kueri sebagai dokumen JSON saat menggunakan antarmuka baris perintah SQLite.

Kita dapat melakukannya dengan json mode keluaran.

Kita juga dapat menggunakan fungsi SQLite seperti json_object() dan/atau json_array() untuk mengembalikan hasil kueri sebagai dokumen JSON.

Mode Keluaran JSON

Kita dapat mengubah mode keluaran seperti ini:

.mode json

Itu saja.

Sekarang ketika kita menjalankan kueri, hasilnya adalah output sebagai dokumen JSON:

SELECT * FROM Pets;

Hasil:

[{"PetId":1,"PetName":"Homer","TypeId":3},
{"PetId":2,"PetName":"Yelp","TypeId":1},
{"PetId":3,"PetName":"Fluff","TypeId":2},
{"PetId":4,"PetName":"Brush","TypeId":4}]

Untuk memperjelas, ini dia dalam mode tabel:

.mode table

Jalankan kueri:

SELECT * FROM Pets;

Hasil:

+-------+---------+--------+
| PetId | PetName | TypeId |
+-------+---------+--------+
| 1     | Homer   | 3      |
| 2     | Yelp    | 1      |
| 3     | Fluff   | 2      |
| 4     | Brush   | 4      |
+-------+---------+--------+

Perhatikan bahwa mode keluaran json diperkenalkan di SQLite 3.33.0, yang dirilis pada 14 Agustus 2020.

Jika Anda menggunakan versi SQLite sebelumnya, contoh di atas tidak akan berfungsi untuk Anda. Anda harus meningkatkan ke versi yang lebih baru jika ingin ini berfungsi.

Atau, Anda dapat menggunakan fungsi JSON untuk melakukan pekerjaan tersebut (dengan asumsi fungsi JSON diaktifkan).

Fungsi JSON

Cara lain untuk melakukannya adalah dengan memasukkan satu atau beberapa fungsi JSON ke dalam kueri kita sehingga mengembalikan dokumen JSON.

Pertama, mari kita atur mode keluaran kita ke list :

.mode list

Sekarang mari kita jalankan kueri yang menggunakan json_group_array() dan json_object() untuk mengembalikan hasil kueri kami dalam dokumen JSON:

SELECT json_group_array( 
        json_object(
        'PetId', PetId, 
        'PetName', PetName,
        'TypeId', TypeId 
        )
    )
FROM Pets;

Hasil:

[{"PetId":1,"PetName":"Homer","TypeId":3},
{"PetId":2,"PetName":"Yelp","TypeId":1},
{"PetId":3,"PetName":"Fluff","TypeId":2},
{"PetId":4,"PetName":"Brush","TypeId":4}]

Di sini, kami menampilkan setiap baris sebagai objek JSON, dan semuanya dibungkus dalam array JSON.

Kita dapat menghilangkan json_group_array() fungsi untuk mengembalikan setiap objek sendiri:

SELECT json_object( 
    'PetId', PetId, 
    'PetName', PetName,
    'TypeId', TypeId 
    )
FROM Pets;

Hasil:

{"PetId":1,"PetName":"Homer","TypeId":3}
{"PetId":2,"PetName":"Yelp","TypeId":1}
{"PetId":3,"PetName":"Fluff","TypeId":2}
{"PetId":4,"PetName":"Brush","TypeId":4}

Contoh-contoh ini mengasumsikan bahwa fungsi JSON diaktifkan. Jika Anda menggunakan SQLite 3.38.0 atau yang lebih baru, ini harus diaktifkan secara default (kecuali jika dinonaktifkan secara eksplisit saat mengkompilasi SQLite).

Sebelum SQLite versi 3.38.0 (dirilis pada 22 Februari 2022), kami perlu mengkompilasi SQLite dengan SQLITE_ENABLE_JSON1 opsi untuk memasukkan fungsi JSON dalam build. Namun, dimulai dengan SQLite versi 3.38.0, fungsi JSON disertakan secara default.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tentang SQLite

  2. Basis data pengaksesan Robolectric menimbulkan kesalahan

  3. SQLite Buat Tabel

  4. Bagaimana cara mengambil semua baris di DB saya?

  5. 3 Cara Mencadangkan Basis Data SQLite