Bagikan melalui


Hapus Kurung Siku dari JSON - Opsi WITHOUT_ARRAY_WRAPPER

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics (hanya kumpulan SQL tanpa server)

Untuk menghapus tanda kurung siku yang mengelilingi output JSON dari klausul FOR JSON secara default, tentukan opsi WITHOUT_ARRAY_WRAPPER . Gunakan opsi ini dengan hasil baris tunggal untuk menghasilkan satu objek JSON sebagai output alih-alih array dengan satu elemen.

Jika Anda menggunakan opsi ini dengan hasil beberapa baris, output yang dihasilkan tidak valid JSON karena beberapa elemen dan tanda kurung siku yang hilang.

Contoh (hasil baris tunggal)

Contoh berikut menunjukkan output klausa FOR JSON dengan dan tanpa opsi WITHOUT_ARRAY_WRAPPER .

Kueri

SELECT 2015 as year, 12 as month, 15 as day  
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER 

Hasil dengan opsi WITHOUT_ARRAY_WRAPPER

{
    "year": 2015,
    "month": 12,
    "day": 15
} 

Hasil (default) tanpa opsi WITHOUT_ARRAY_WRAPPER

[{
    "year": 2015,
    "month": 12,
    "day": 15
}]

Contoh (hasil beberapa baris)

Berikut adalah contoh lain dari klausul FOR JSON dengan dan tanpa opsi WITHOUT_ARRAY_WRAPPER . Contoh ini menghasilkan hasil beberapa baris. Output tidak valid JSON karena beberapa elemen dan tanda kurung siku yang hilang.

Kueri

SELECT TOP 3 SalesOrderNumber, OrderDate, Status  
FROM Sales.SalesOrderHeader  
ORDER BY ModifiedDate  
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER 

Hasil dengan opsi WITHOUT_ARRAY_WRAPPER

{
    "SalesOrderNumber": "SO43662",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}, {
    "SalesOrderNumber": "SO43661",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}, {
    "SalesOrderNumber": "SO43660",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
} 

Hasil (default) tanpa opsi WITHOUT_ARRAY_WRAPPER

[{
    "SalesOrderNumber": "SO43662",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}, {
    "SalesOrderNumber": "SO43661",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}, {
    "SalesOrderNumber": "SO43660",
    "OrderDate": "2011-05-31T00:00:00",
    "Status": 5
}]

Pelajari selengkapnya tentang JSON di SQL Server dan Azure SQL Database

Video Microsoft

Catatan

Beberapa tautan video di bagian ini mungkin tidak berfungsi saat ini. Microsoft memigrasikan konten sebelumnya di Channel 9 ke platform baru. Kami akan memperbarui tautan saat video dimigrasikan ke platform baru.

Untuk pengenalan visual dukungan JSON bawaan di SQL Server dan Azure SQL Database, lihat video berikut ini:

Lihat Juga

Klausul FOR (Transact-SQL)