Bagikan melalui


Hapus Kurung Siku dari JSON - dengan Opsi WITHOUT_ARRAY_WRAPPER

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (hanya kumpulan SQL tanpa server)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft FabricSQL database di Microsoft Fabric

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.

Query

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 klausa FOR JSON dengan dan tanpa opsi WITHOUT_ARRAY_WRAPPER. Contoh ini menghasilkan hasil beberapa baris. Output tidak berbentuk JSON yang valid karena terdapat beberapa elemen dan kurangnya tanda kurung siku.

Query

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 Database Engine

Untuk pengenalan visual dukungan JSON bawaan, lihat video berikut ini: