Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op: SQL Server 2016 (13.x) en latere versies 
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (alleen serverloze SQL-pool)
SQL Analytics-eindpunt in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL-database in Microsoft Fabric Preview
Maak queryresultaten op als JSON of exporteer gegevens uit SQL Server als JSON door de FOR JSON component toe te voegen aan een SELECT instructie. Gebruik de component FOR JSON om clienttoepassingen te vereenvoudigen door de opmaak van JSON-uitvoer van de app naar SQL Server te delegeren.
Note
Azure Data Studio- is de aanbevolen query-editor voor JSON-query's omdat deze de JSON-resultaten automatisch opmaakt, zoals wordt weergegeven in dit artikel. SQL Server Management Studio geeft een niet-opgemaakte tekenreeks weer.
In Fabric Data Warehouse moet FOR JSON de laatste operator in de query zijn en is dit dus niet toegestaan binnen subquery's.
Queryresultaten opmaken
Wanneer u de FOR JSON-component gebruikt, kunt u de structuur van de JSON-uitvoer expliciet opgeven of de structuur van de SELECT-instructie de uitvoer laten bepalen.
- Gebruik - FOR JSON PATHom de volledige controle over de indeling van de JSON-uitvoer te behouden. U kunt wrapperobjecten maken en complexe eigenschappen nesten.
- Als u de JSON-uitvoer automatisch wilt opmaken op basis van de structuur van de - SELECT-instructie, gebruikt u- FOR JSON AUTO.
Hier volgt een voorbeeld van een SELECT-uitspraak met de FOR JSON-clausule en de uitvoer ervan.
              
               
              
              
            
Uitvoer beheren met FOR JSON PATH
In PATH-modus kunt u de puntsyntaxis - bijvoorbeeld, Item.Price - gebruiken om geneste uitvoer op te maken.
Hier volgt een voorbeeldquery die gebruikmaakt van PATH-modus met de FOR JSON-component. In het volgende voorbeeld wordt ook de optie ROOT gebruikt om een benoemd hoofdelement op te geven.
              
               
              
              
            
Meer informatie over FOR JSON PATH
Zie Geneste JSON-uitvoer opmaken met PATH-modus voor meer gedetailleerde informatie en voorbeelden.
Zie SELECT - FOR-component (Transact-SQL)voor syntaxis en gebruik.
Andere JSON-uitvoeropties beheren
Beheer de uitvoer van de FOR JSON-component met behulp van de volgende extra opties.
- ROOT- Als u één element op het hoogste niveau wilt toevoegen aan de JSON-uitvoer, geeft u de optie - ROOTop. Als u deze optie niet opgeeft, heeft de JSON-uitvoer geen hoofdelement. Zie Een hoofdknooppunt toevoegen aan JSON-uitvoer met de ROOT-optie voor meer informatie.
- INCLUDE_NULL_VALUES- Als u null-waarden wilt opnemen in de JSON-uitvoer, geeft u de optie - INCLUDE_NULL_VALUESop. Als u deze optie niet opgeeft, bevat de uitvoer geen JSON-eigenschappen voor- NULLwaarden in de queryresultaten. Zie Null-waarden opnemen in JSON - INCLUDE_NULL_VALUES Optionvoor meer informatie.
- WITHOUT_ARRAY_WRAPPER- Als u de vierkante haken tussen de JSON-uitvoer van de - FOR JSON-component standaard wilt verwijderen, geeft u de optie- WITHOUT_ARRAY_WRAPPERop. Gebruik deze optie om één JSON-object te genereren als uitvoer van een resultaat met één rij. Als u deze optie niet opgeeft, wordt de JSON-uitvoer opgemaakt als een matrix. Dat wil gezegd, de uitvoer wordt tussen vierkante haken geplaatst. Zie Vierkante haken verwijderen uit JSON - WITHOUT_ARRAY_WRAPPER Optionvoor meer informatie.
Uitvoer van de FOR JSON-clausule
De uitvoer van de FOR JSON clausule heeft de volgende kenmerken:
- De resultatenset bevat één kolom. - Een kleine resultatenset kan één rij bevatten.
- Een grote resultatenset splitst de lange JSON-tekenreeks over meerdere rijen.
- Sql Server Management Studio (SSMS) voegt standaard de resultaten samen in één rij wanneer de uitvoerinstelling is Resultaten naar Raster. Op de SSMS-statusbalk wordt het werkelijke aantal rijen weergegeven. 
- Voor andere clienttoepassingen is mogelijk code vereist om lange resultaten opnieuw samen te voegen in één geldige JSON-tekenreeks door de inhoud van meerdere rijen samen te voegen. Zie Use FOR JSON-uitvoer in een C#-client-appvoor een voorbeeld van deze code in een C#-toepassing.   
 
 
- De resultaten worden opgemaakt als een matrix van JSON-objecten. - Het aantal elementen in de JSON-matrix is gelijk aan het aantal rijen in de resultaten van de SELECT-instructie (voordat de FOR JSON-component wordt toegepast). 
- Elke rij in de resultaten van de SELECT-instructie (voordat de FOR JSON-component wordt toegepast) wordt een afzonderlijk JSON-object in de matrix. 
- Elke kolom in de resultaten van de SELECT-instructie (voordat de FOR JSON-component wordt toegepast) wordt een eigenschap van het JSON-object. 
 
- Zowel de namen van kolommen als hun waarden worden geëscaped volgens deze JSON-syntaxis. Zie How FOR JSON escapes voor speciale tekens en besturingstekens voor meer informatie. 
Example
Hier volgt een voorbeeld van hoe de FOR JSON-component de JSON-uitvoer opmaakt.
Queryresultaten
| A | B | C | D | 
|---|---|---|---|
| 10 | 11 | 12 | X | 
| 20 | 21 | 22 | Y | 
| 30 | 31 | 32 | Z | 
JSON-uitvoer
[{
    "A": 10,
    "B": 11,
    "C": 12,
    "D": "X"
}, {
    "A": 20,
    "B": 21,
    "C": 22,
    "D": "Y"
}, {
    "A": 30,
    "B": 31,
    "C": 32,
    "D": "Z"
}]
Verwante inhoud
- Hoe FOR JSON SQL Server-gegevenstypen naar JSON-gegevenstypen converteert
- Hoe VOOR JSON speciale tekens en besturingstekens escapen
- Video: JSON als een brug tussen NoSQL en relationele werelden
- SELECT - FOR-clausule (Transact-SQL)
- FOR JSON-uitvoer gebruiken in de SQL Database Engine en in client-apps