OPENJSON può estrarre frammenti di oggetti JSON all'interno del testo JSON. Nella definizione della colonna che fa riferimento all'oggetto secondario JSON, impostare il tipo nvarchar (max) e l'opzione AS JSON:
declare @json nvarchar(4000) = N'[
{"Number":"SO43659","Date":"2011-05-31T00:00:00","info":{"customer":"MSFT","Price":59.99,"qty":1}},
{"Number":"SO43661","Date":"2011-06-01T00:00:00","info":{"customer":"Nokia","Price":24.99,"qty":3}}
]'
SELECT *
FROM OPENJSON (@json)
WITH (
Number varchar(200),
Date datetime,
Info nvarchar(max) '$.info' AS JSON
)
La colonna Info verrà mappata sull'oggetto "Info". I risultati saranno:
Numero | Data | Informazioni |
---|---|---|
SO43659 | 2011-05-31T00: 00: 00 | { "Cliente": "MSFT", "Prezzo": 59,99, "qty": 1} |
SO43661 | 2011-06-01T00: 00: 00 | { "Cliente": "Nokia", "Prezzo": 24.99, "qty": 3} |