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.
Dalam artikel ini
Berlaku untuk: SQL Server
Azure SQL Managed Instance
Azure Synapse Analytics (hanya kumpulan SQL tanpa server)
Titik akhir analitik SQL di Microsoft Fabric
Warehouse 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.
Catatan
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.
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
SELECT
pernyataan, gunakanFOR JSON AUTO
.
Berikut adalah contoh pernyataan SELECT
dengan klausul FOR JSON
dan outputnya.
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.
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).
Kontrol output FOR JSON
klausa, menggunakan opsi tambahan berikut.
ROOT
Untuk menambahkan elemen tingkat atas tunggal ke output JSON, tentukan
ROOT
opsi . 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 (SQL Server).INCLUDE_NULL_VALUES
Untuk menyertakan nilai null dalam output JSON, tentukan
INCLUDE_NULL_VALUES
opsi . Jika Anda tidak menentukan opsi ini, output tidak menyertakan properti JSON untukNULL
nilai dalam hasil kueri. Untuk informasi selengkapnya, lihat Menyertakan Nilai Null di Opsi JSON - INCLUDE_NULL_VALUES.WITHOUT_ARRAY_WRAPPER
Untuk menghapus tanda kurung siku yang mengelilingi output JSON dari klausul
FOR JSON
secara 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 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 (SQL Server).
Berikut adalah contoh yang menunjukkan bagaimana FOR JSON
klausul memformat output JSON.
A | B | C | D |
---|---|---|---|
10 | 11 | 12 | X |
20 | 21 | 22 | Y |
30 | 31 | 32 | Z |
[{
"A": 10,
"B": 11,
"C": 12,
"D": "X"
}, {
"A": 20,
"B": 21,
"C": 22,
"D": "Y"
}, {
"A": 30,
"B": 31,
"C": 32,
"D": "Z"
}]
- Bagaimana FOR JSON mengonversi jenis data SQL Server ke jenis data JSON (SQL Server)
- Bagaimana FOR JSON lolos karakter khusus dan karakter kontrol (SQL Server)
- Video: JSON sebagai jembatan antara NoSQL dan dunia relasional
- SELECT - Klausul FOR (Transact-SQL)
- Gunakan output FOR JSON di SQL Server dan di aplikasi klien (SQL Server)