Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (solo server less SQL pool)
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
Database SQL in Microsoft Fabric
Usare OPENJSON con uno schema esplicito per restituire una tabella formattata come specificato nella WITH clausola .
Ecco alcuni esempi che usano OPENJSON con uno schema esplicito. Per altre informazioni, vedere OPENJSON (Transact-SQL).
Esempio: usare la clausola WITH per formattare l'output
La query seguente restituisce i risultati mostrati nella tabella riportata di seguito. Si noti che la clausola AS JSON fa in modo che i valori vengano restituiti come oggetti JSON anziché valori scalari in col5 e array_element.
DECLARE @json NVARCHAR(MAX) =
N'{"someObject":
{"someArray":
[
{"k1": 11, "k2": null, "k3": "text"},
{"k1": 21, "k2": "text2", "k4": { "data": "text4" }},
{"k1": 31, "k2": 32},
{"k1": 41, "k2": null, "k4": { "data": false }}
]
}
}'
SELECT * FROM
OPENJSON(@json, N'lax $.someObject.someArray')
WITH ( k1 int,
k2 varchar(100),
col3 varchar(6) N'$.k3',
col4 varchar(10) N'lax $.k4.data',
col5 nvarchar(MAX) N'lax $.k4' AS JSON,
array_element nvarchar(MAX) N'$' AS JSON
)
Results
| k1 | k2 | col3 | col4 | col5 | array_element |
|---|---|---|---|---|---|
| 11 | NULL | "text" | NULL | NULL | {"k1": 11, "k2": null, "k3": "testo"} |
| 21 | "text2" | NULL | "text4" | { "data": "text4" } | {"K1": vero, "K2": "Testo2", "K4": { "Data": "Test4" } } |
| 31 | "32" | NULL | NULL | NULL | {"k1": 31, "k2": 32 } |
| 41 | NULL | NULL | false | { "data": false } | {"k1": 41, "k2": null, "k4": { "data": false } } |
Esempio: caricare JSON in una tabella SQL Server.
Nell'esempio seguente viene caricato un intero oggetto JSON in una tabella di SQL Server.
DECLARE @json NVARCHAR(MAX) = '{
"id" : 2,
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"dateOfBirth": "2015-03-25T12:00:00",
"spouse": null
}';
INSERT INTO Person
SELECT *
FROM OPENJSON(@json)
WITH (id int,
firstName nvarchar(50), lastName nvarchar(50),
isAlive bit, age int,
dateOfBirth datetime2, spouse nvarchar(50))
Altre informazioni su JSON nel motore di database SQL
Per un'introduzione visiva al supporto JSON predefinito, vedere i video seguenti:
- JSON as a bridge between NoSQL and relational worlds (JSON come ponte tra NoSQL e gli ambienti relazionali)