Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för: SQL Server 2016 (13.x) och senare versioner 
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (endast serverlös SQL-pool)
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
SQL Database i Förhandsversion av Microsoft Fabric
Om du vill behålla fullständig kontroll över satsens FOR JSON utdata anger du alternativet PATH .
              PATH läge kan du skapa omslutningsobjekt och kapsla komplexa egenskaper. Resultatet formateras som en matris med JSON-objekt.
Alternativet är att använda AUTO alternativet för att formatera utdata automatiskt baserat på instruktionens SELECT struktur.
- Mer information om alternativet finns i 
AUTOFormatera JSON-utdata automatiskt med autoläge . - En översikt över båda alternativen finns i Formatera frågeresultat som JSON med FOR JSON.
 
Här följer några exempel på FOR JSON-satsen med alternativet PATH. Formatera kapslade resultat med hjälp av punktavgränsade kolumnnamn eller med hjälp av kapslade frågor, enligt följande exempel. Som standard ingår inte null-värden i FOR JSON utdata. 
              Azure Data Studio är den rekommenderade frågeredigeraren för JSON-frågor eftersom det automatiskt formaterar JSON-resultaten (som du ser i den här artikeln) i stället för att visa en platt sträng.
Exempel – Punktavgränsade kolumnnamn
Följande fråga formaterar de första fem raderna från tabellen AdventureWorks Person som JSON.
Satsen FOR JSON PATH använder kolumnaliaset eller kolumnnamnet för att fastställa nyckelnamnet i JSON-utdata. Om ett alias innehåller punkter PATH skapar alternativet kapslade objekt.
Query
SELECT TOP 5   
       BusinessEntityID As Id,  
       FirstName, LastName,  
       Title As 'Info.Title',  
       MiddleName As 'Info.MiddleName'  
   FROM Person.Person  
   FOR JSON PATH   
Result
[{
    "Id": 1,
    "FirstName": "Ken",
    "LastName": "Sanchez",
    "Info": {
        "MiddleName": "J"
    }
}, {
    "Id": 2,
    "FirstName": "Terri",
    "LastName": "Duffy",
    "Info": {
        "MiddleName": "Lee"
    }
}, {
    "Id": 3,
    "FirstName": "Roberto",
    "LastName": "Tamburello"
}, {
    "Id": 4,
    "FirstName": "Rob",
    "LastName": "Walters"
}, {
    "Id": 5,
    "FirstName": "Gail",
    "LastName": "Erickson",
    "Info": {
        "Title": "Ms.",
        "MiddleName": "A"
    }
}]
Exempel – Flera tabeller
Om du refererar till fler än en tabell i en fråga kapslas FOR JSON PATH varje kolumn med hjälp av dess alias. Följande fråga skapar ett JSON-objekt per (OrderHeader, OrderDetails) par som är anslutna till frågan.
Query
SELECT TOP 2 H.SalesOrderNumber AS 'Order.Number',  
        H.OrderDate AS 'Order.Date',  
        D.UnitPrice AS 'Product.Price',  
        D.OrderQty AS 'Product.Quantity'  
FROM Sales.SalesOrderHeader H  
   INNER JOIN Sales.SalesOrderDetail D  
     ON H.SalesOrderID = D.SalesOrderID  
FOR JSON PATH   
Result
[{
    "Order": {
        "Number": "SO43659",
        "Date": "2011-05-31T00:00:00"
    },
    "Product": {
        "Price": 2024.9940,
        "Quantity": 1
    }
}, {
    "Order": {
        "Number": "SO43659"
    },
    "Product": {
        "Price": 2024.9940
    }
}]
Läs mer om JSON i SQL Database Engine
En visuell introduktion till det inbyggda JSON-stödet finns i följande videor: