Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (tylko bezserwerowa pula SQL)
Punkt końcowy analizy SQL w Microsoft Fabric
Magazyn w Microsoft Fabric
SQL database w wersji zapoznawczej Microsoft Fabric
Aby automatycznie sformatować dane wyjściowe klauzuli FOR JSON
na podstawie struktury instrukcji SELECT
, użyj opcji AUTO
.
Po określeniu AUTO
opcji format danych wyjściowych JSON jest automatycznie określany na podstawie kolejności kolumn na liście SELECT i ich tabelach źródłowych. Nie można zmienić tego formatu.
Alternatywą jest użycie opcji utrzymania PATH
kontroli nad danymi wyjściowymi.
- Aby uzyskać więcej informacji na temat
PATH
opcji, zobacz Formatowanie zagnieżdżonych danych wyjściowych JSON przy użyciu trybu PATH. - Aby zapoznać się z omówieniem obu opcji, zobacz Formatowanie wyników zapytania jako kod JSON zFOR JSON.
Zapytanie korzystające z FOR JSON AUTO
opcji musi mieć klauzulę FROM
.
Poniżej przedstawiono kilka przykładów klauzuli FOR JSON
z opcją AUTO
.
Azure Data Studio jest zalecanym edytorem zapytań dla zapytań JSON, ponieważ automatycznie formatuje wyniki JSON (jak pokazano w tym artykule) zamiast wyświetlania prostego ciągu.
Examples
Example 1
Query
Gdy zapytanie odwołuje się tylko do jednej tabeli, wyniki klauzuli FOR JSON AUTO
są podobne do wyników .FOR JSON PATH
W tym przypadku FOR JSON AUTO
nie tworzy zagnieżdżonych obiektów. Jedyną różnicą jest to, że FOR JSON AUTO
wyprowadza aliasy rozdzielone kropkami (na przykład Info.MiddleName
w poniższym przykładzie) jako klucze z kropkami, a nie jako obiekty zagnieżdżone.
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON AUTO
Result
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sánchez",
"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.",
"Info.MiddleName": "A"
}]
Example 2
Query
Podczas łączenia tabel kolumn w pierwszej tabeli są generowane jako właściwości obiektu głównego. Kolumny w drugiej tabeli są generowane jako właściwości zagnieżdżonego obiektu. Nazwa tabeli lub alias drugiej tabeli (przykładowo D
w poniższym przykładzie) służy jako nazwa zagnieżdżonej tablicy.
SELECT TOP 2 SalesOrderNumber,
OrderDate,
UnitPrice,
OrderQty
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON AUTO
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO43659",
"D": [{
"UnitPrice": 34.40
}, {
"UnitPrice": 134.24,
"OrderQty": 5
}]
}]
Example 3
Query
Zamiast używać FOR JSON AUTO, możesz zagnieździć podzapytanie FOR JSON PATH w instrukcji SELECT, jak pokazano w poniższym przykładzie. W tym przykładzie wynik jest taki sam jak w poprzednim przykładzie.
SELECT TOP 2
SalesOrderNumber,
OrderDate,
(SELECT UnitPrice, OrderQty
FROM Sales.SalesOrderDetail AS D
WHERE H.SalesOrderID = D.SalesOrderID
FOR JSON PATH) AS D
FROM Sales.SalesOrderHeader AS H
FOR JSON PATH
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO4390",
"D": [{
"UnitPrice": 24.99
}]
}]
Dowiedz się więcej o JSON w silniku bazy danych SQL
Aby zapoznać się z wizualnym wprowadzeniem do wbudowanej obsługi kodu JSON, zobacz następujące wideo: