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
Artikel ini menjelaskan bagaimana FOR JSON klausul pernyataan SQL Server SELECT lolos dari karakter khusus dan mewakili karakter kontrol dalam output JSON.
Artikel ini menjelaskan dukungan bawaan untuk JSON di Microsoft SQL Server. Untuk informasi umum tentang penghindaran dan pengodean di JSON, lihat Bagian 2.5 dari JSON RFC.
Escape karakter khusus
Jika data sumber berisi karakter khusus, FOR JSON klausa akan lolos dalam output JSON dengan \, seperti yang ditunjukkan dalam tabel berikut. Pelepasan ini terjadi baik dalam nama properti maupun nilai-nilainya.
| Karakter khusus | Output yang di-escape |
|---|---|
Tanda kutip (") |
\" |
Tanda garis miring terbalik (\) |
\\ |
Garis miring (/) |
\/ |
| Backspace | \b |
| Ganti halaman | \f |
| Baris baru | \n |
| Kembali ke awal | \r |
| Tab horizontal | \t |
Karakter kontrol
Jika data sumber berisi karakter kontrol, FOR JSON klausa mengodekannya dalam output JSON dalam \u<code> format, seperti yang ditunjukkan dalam tabel berikut.
| Karakter kontrol | Output yang dikodekan |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Berikut adalah contoh FOR JSON output untuk data sumber yang mencakup karakter khusus dan karakter kontrol.
Query:
SELECT 'VALUE\ /
"' AS [KEY\/"],
CHAR(0) AS '0',
CHAR(1) AS '1',
CHAR(31) AS '31'
FOR JSON PATH;
Result:
[
{
"KEY\\\/\"": "VALUE\\ \/\r\n \"",
"0": "\u0000",
"1": "\u0001",
"31": "\u001f"
}
]