Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (hanya kumpulan SQL tanpa server)
Titik akhir analitik SQL di Microsoft Fabric
Warehouse di Microsoft Fabric
SQL database di Microsoft Fabric
Format hasil kueri sebagai JSON, atau ekspor data dari SQL Server sebagai JSON, dengan menambahkan FOR JSON klausa ke SELECT pernyataan.
FOR JSON Gunakan klausul untuk menyederhanakan aplikasi klien dengan mendelegasikan pemformatan output JSON dari aplikasi ke SQL Server.
Note
Azure Data Studio adalah editor kueri yang direkomendasikan untuk kueri JSON karena memformat hasil JSON secara otomatis, seperti yang ditunjukkan dalam artikel ini. SQL Server Management Studio menampilkan string yang tidak diformat.
Di Gudang Data Fabric, FOR JSON harus menjadi operator terakhir dalam kueri, sehingga tidak diizinkan di dalam subkueri.
Memformat hasil kueri
Saat Anda menggunakan FOR JSON klausul, Anda dapat menentukan struktur output JSON secara eksplisit, atau membiarkan struktur SELECT pernyataan menentukan output.
Untuk mempertahankan kontrol penuh atas format output JSON, gunakan
FOR JSON PATH. Anda dapat membuat objek pembungkus dan properti kompleks sarang.Untuk memformat output JSON secara otomatis berdasarkan struktur
SELECTpernyataan, gunakanFOR JSON AUTO.
Berikut adalah contoh pernyataan SELECT dengan klausul FOR JSON dan outputnya.
Mengontrol output dengan FOR JSON PATH
Dalam PATH mode, Anda dapat menggunakan sintaks titik - misalnya, Item.Price - untuk memformat output berlapis.
Berikut adalah contoh kueri yang menggunakan mode PATH dengan klausa FOR JSON. Contoh berikut juga menggunakan ROOT opsi untuk menentukan elemen akar bernama.
Info selengkapnya tentang FOR JSON PATH
Untuk informasi dan contoh yang lebih rinci, lihat Format Output JSON Berlapis dengan Mode PATH.
Untuk sintaks dan penggunaan, lihat SELECT - FOR Clause (Transact-SQL).
Mengontrol opsi output JSON lainnya
Kontrol output FOR JSON klausa, menggunakan opsi tambahan berikut.
ROOTUntuk menambahkan elemen tingkat atas tunggal ke output JSON, tentukan
ROOTopsi . Jika Anda tidak menentukan opsi ini, output JSON tidak memiliki elemen root. Untuk informasi selengkapnya, lihat Menambahkan Simpul Akar ke Output JSON dengan Opsi ROOT.INCLUDE_NULL_VALUESUntuk menyertakan nilai null dalam output JSON, tentukan
INCLUDE_NULL_VALUESopsi . Jika Anda tidak menentukan opsi ini, output tidak menyertakan properti JSON untukNULLnilai dalam hasil kueri. Untuk informasi selengkapnya, lihat Menyertakan Nilai Null di Opsi JSON - INCLUDE_NULL_VALUES.WITHOUT_ARRAY_WRAPPERUntuk menghapus tanda kurung siku yang mengelilingi output JSON dari klausul
FOR JSONsecara default, tentukan opsiWITHOUT_ARRAY_WRAPPER. Gunakan opsi ini untuk menghasilkan satu objek JSON sebagai output dari hasil satu baris. Jika Anda tidak menentukan opsi ini, output JSON diformat sebagai array - yaitu, output diapit dalam tanda kurung siku. Untuk informasi lebih lanjut, lihat Menghapus Kurung Siku dari JSON - WITHOUT_ARRAY_WRAPPER Option.
Keluaran dari klausul FOR JSON
Keluaran dari FOR JSON klausul memiliki karakteristik berikut:
Kumpulan hasil berisi satu kolom.
- Kumpulan hasil kecil dapat berisi satu baris.
- Kumpulan hasil besar membagi string JSON panjang di beberapa baris.
Secara default, SQL Server Management Studio (SSMS) menggabungkan hasil menjadi satu baris saat pengaturan output adalah Hasil ke Kisi. Bilah status SSMS menampilkan jumlah baris aktual.
Aplikasi klien lain mungkin memerlukan kode untuk merecombine hasil panjang menjadi satu string JSON yang valid dengan menggabungkan konten beberapa baris. Untuk contoh kode ini dalam aplikasi C#, lihat Menggunakan output FOR JSON di aplikasi klien C#.
Hasilnya diformat sebagai array objek JSON.
Jumlah elemen dalam array JSON sama dengan jumlah baris dalam hasil pernyataan SELECT (sebelum klausul FOR JSON diterapkan).
Setiap baris dalam hasil pernyataan SELECT (sebelum klausul FOR JSON diterapkan) menjadi objek JSON terpisah dalam array.
Setiap kolom dalam hasil pernyataan SELECT (sebelum klausul FOR JSON diterapkan) menjadi properti objek JSON.
Nama-nama kolom dan nilainya diekstrapolasi sesuai dengan sintaks JSON. Untuk informasi selengkapnya, lihat Cara JSON meloloskan karakter khusus dan karakter kontrol.
Example
Berikut adalah contoh yang menunjukkan bagaimana FOR JSON klausul memformat output JSON.
Hasil kueri
| A | B | C | D |
|---|---|---|---|
| 10 | 11 | 12 | X |
| 20 | 21 | 22 | Y |
| 30 | 31 | 32 | Z |
Output JSON
[{
"A": 10,
"B": 11,
"C": 12,
"D": "X"
}, {
"A": 20,
"B": 21,
"C": 22,
"D": "Y"
}, {
"A": 30,
"B": 31,
"C": 32,
"D": "Z"
}]
Konten terkait
- Cara FOR JSON mengonversi jenis data SQL Server ke jenis data JSON
- Bagaimana FOR JSON meloloskan karakter khusus dan karakter kontrol
- Video: JSON sebagai jembatan antara NoSQL dan dunia relasional
- SELECT - Klausul FOR (Transact-SQL)
- Menggunakan output FOR JSON di SQL Database Engine dan di aplikasi klien