適用対象: SQL Server 2016 (13.x) 以降のバージョン
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (サーバーレス SQL プールのみ)
Microsoft Fabric
Warehouse の SQL 分析エンドポイント
FOR JSON
句の JSON 出力を囲む角かっこを既定で削除するには、WITHOUT_ARRAY_WRAPPER
オプションを指定します。 単一要素の配列の代わりに、単一の JSON オブジェクトを出力として生成するには、このオプションと単一行の結果を使います。
このオプションと複数行の結果を使うと、複数の要素が生成されて角かっこがないため、結果の出力は有効な JSON ではなくなります。
例 (単一行の結果)
次の例は、WITHOUT_ARRAY_WRAPPER
オプションの有無に関係なく、FOR JSON
句の出力を示しています。
クエリ
SELECT 2015 as year, 12 as month, 15 as day
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
WITHOUT_ARRAY_WRAPPER
オプションを使用した結果
{
"year": 2015,
"month": 12,
"day": 15
}
WITHOUT_ARRAY_WRAPPER
オプションを使用しない結果 (既定)
[{
"year": 2015,
"month": 12,
"day": 15
}]
例 (複数行の結果)
WITHOUT_ARRAY_WRAPPER
オプションの有無に関係なく、FOR JSON
句のもう 1 つの例を次に示します。 この例では、複数行の結果が生成されます。 複数の要素があり、角かっこがないため、出力は有効な JSON ではありません。
クエリ
SELECT TOP 3 SalesOrderNumber, OrderDate, Status
FROM Sales.SalesOrderHeader
ORDER BY ModifiedDate
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
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
}
結果 (既定値) 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
}]
SQL データベース エンジンでの JSON の詳細
Microsoft ビデオ
SQL Server と Azure SQL Database に組み込まれている JSON のサポートの視覚的な紹介は、次のビデオをご覧ください。