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.