Dati JSON (SQL Server)JSON Data (SQL Server)

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (a partire dalla versione 2016)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

JSON è un popolare formato di dati testuali usato per lo scambio di dati in applicazioni per dispositivi mobili e Web moderne.JSON is a popular textual data format used for exchanging data in modern web and mobile applications. JSON viene usato anche per archiviare dati non strutturati nei file di log o nei database NoSQL come Microsoft Azure DocumentDB.JSON is also used for storing unstructured data in log files or NoSQL databases like Microsoft Azure DocumentDB. Molti servizi Web REST restituiscono risultati formattati come testo JSON oppure accettano dati formattati come JSON.Many REST web services return results formatted as JSON text or accept data formatted as JSON. La maggior parte dei servizi Azure, come Ricerca di Azure, Archiviazione di Azure e Azure DocumentDb, include ad esempio endpoint REST che restituiscono o usano JSON.For example, most Azure services such as Azure Search, Azure Storage, and Azure DocumentDb have REST endpoints that return or consume JSON. JSON è anche il formato principale per lo scambio di dati tra le pagine Web e i server Web che usano le chiamate AJAX.JSON is also the main format for exchanging data between web pages and web servers using AJAX calls.

Ecco un esempio di testo JSON:Here's an example of JSON text:

[{
    "name": "John",
    "skills": ["SQL", "C#", "Azure"]
}, {
    "name": "Jane",
    "surname": "Doe"
}]

SQL Server fornisce funzioni e operatori predefiniti che consentono di eseguire le operazioni seguenti con testo JSON.SQL Server provides built-in functions and operators that let you do the following things with JSON text.

  • Analizzare il testo JSON e leggere o modificare i valori.Parse JSON text and read or modify values.

  • Trasformare matrici di oggetti JSON in formato tabella.Transform arrays of JSON objects into table format.

  • Eseguire qualsiasi query Transact-SQL sugli oggetti JSON convertiti.Run any Transact-SQL query on the converted JSON objects.

  • Formattare i risultati delle query Transact-SQL in formato JSON.Format the results of Transact-SQL queries in JSON format.

    Panoramica del supporto JSON predefinitoOverview of built-in JSON support

Principali funzionalità JSON di SQL ServerKey JSON capabilities of SQL Server

Di seguito sono descritte le principali funzionalità offerte da SQL Server tramite il supporto JSON predefinito.Here's more info about the key capabilities that SQL Server provides with its built-in JSON support.

Estrarre valori dal testo JSON e usarli nelle queryExtract values from JSON text and use them in queries

Se un testo JSON viene archiviato nel database o in tabelle, è possibile usare le funzioni predefinite per leggere o modificare i valori in testo JSON.If you have JSON text that's stored in database tables, you can use built-in functions to read or modify values in the JSON text.

  • Usare la funzione JSON_VALUE per estrarre un valore scalare da una stringa JSON.Use the JSON_VALUE function to extract a scalar value from a JSON string.

  • Usare JSON_QUERY per estrarre un oggetto o una matrice da una stringa JSON.Use JSON_QUERY to extract an object or an array from a JSON string.

  • Usare la funzione ISJSON per verificare se una stringa contiene JSON valido.Use the ISJSON function to test whether a string contains valid JSON.

  • Usare la funzione JSON_MODIFY per modificare un valore in una stringa JSON.Use the JSON_MODIFY function to change a value in a JSON string.

EsempioExample

Nell'esempio seguente, la query utilizza sia relazionali e dati JSON (archiviati in una colonna denominata jsonCol) da una tabella:In the following example, the query uses both relational and JSON data (stored in a column named jsonCol) from a table:

SELECT Name,Surname,
 JSON_VALUE(jsonCol,'$.info.address.PostCode') AS PostCode,
 JSON_VALUE(jsonCol,'$.info.address."Address Line 1"')+' '
  +JSON_VALUE(jsonCol,'$.info.address."Address Line 2"') AS Address,
 JSON_QUERY(jsonCol,'$.info.skills') AS Skills
FROM People
WHERE ISJSON(jsonCol)>0
 AND JSON_VALUE(jsonCol,'$.info.address.Town')='Belgrade'
 AND Status='Active'
ORDER BY JSON_VALUE(jsonCol,'$.info.address.PostCode')

Strumenti e applicazioni non rilevano alcuna differenza tra i valori ricavati dalle colonne della tabella scalare e i valori ricavati dalla colonna JSON.Applications and tools see no difference between the values taken from scalar table columns and the values taken from JSON columns. È possibile usare i valori dal testo JSON in qualsiasi parte della query Transact-SQL (tra cui clausole WHERE, ORDER BY o GROUP BY, aggregazioni finestra e così via).You can use values from JSON text in any part of a Transact-SQL query (including WHERE, ORDER BY, or GROUP BY clauses, window aggregates, and so on). Le funzioni JSON usano una sintassi di tipo JavaScript per fare riferimento ai valori all'interno del testo JSON.JSON functions use JavaScript-like syntax for referencing values inside JSON text.

Per altre informazioni, vedere Convalidare, eseguire query e modificare i dati JSON con funzioni predefinite (SQL Server), JSON_VALUE (Transact-SQL)e JSON_QUERY (Transact-SQL).For more info, see Validate, Query, and Change JSON Data with Built-in Functions (SQL Server), JSON_VALUE (Transact-SQL), and JSON_QUERY (Transact-SQL).

Modificare valori JSONChange JSON values

Se è necessario modificare parti di testo JSON, è possibile usare la funzione JSON_MODIFY per aggiornare il valore di una proprietà in una stringa JSON e restituire la stringa JSON aggiornata.If you have to modify parts of JSON text, you can use the JSON_MODIFY function to update the value of a property in a JSON string and return the updated JSON string. L'esempio seguente aggiorna il valore di una proprietà in una variabile che include contenuto JSON.The following example updates the value of a property in a variable that contains JSON.

DECLARE @jsonInfo NVARCHAR(MAX)

SET @jsonInfo=JSON_MODIFY(@jsonInfo,'$.info.address[0].town','London') 

Convertire raccolte JSON in un set di righeConvert JSON collections to a rowset

Non è necessario un linguaggio di query personalizzato per eseguire query JSON in SQL Server.You don't need a custom query language to query JSON in SQL Server. Per eseguire query sui dati JSON, si può usare il linguaggio T-SQL standard.To query JSON data, you can use standard T-SQL. Se è necessario creare una query o un report sui dati JSON, è possibile convertire facilmente i dati JSON in righe e colonne chiamando la funzione OPENJSON del set di righe.If you have to create a query or report on JSON data, you can easily convert JSON data to rows and columns by calling the OPENJSON rowset function. Per altre informazioni, vedere Convertire dati JSON in righe e colonne con la funzione OPENJSON (SQL Server).For more info, see Convert JSON Data to Rows and Columns with OPENJSON (SQL Server).

Nell'esempio seguente viene chiamato OPENJSON che trasforma una matrice di oggetti archiviati nella variabile @json in un set di righe su cui è possibile eseguire una query usando l'istruzione SQL SELECT standard:The following example calls OPENJSON and transforms the array of objects stored in the @json variable to a rowset that can be queried with a standard SQL SELECT statement:

DECLARE @json NVARCHAR(MAX)
SET @json =  
N'[  
       { "id" : 2,"info": { "name": "John", "surname": "Smith" }, "age": 25 },  
       { "id" : 5,"info": { "name": "Jane", "surname": "Smith" }, "dob": "2005-11-04T12:00:00" }  
 ]'  

SELECT *  
FROM OPENJSON(@json)  
  WITH (id int 'strict $.id',  
        firstName nvarchar(50) '$.info.name', lastName nvarchar(50) '$.info.surname',  
        age int, dateOfBirth datetime2 '$.dob')  

RisultatiResults

idid firstNamefirstName lastNamelastName ageage dateOfBirthdateOfBirth
22 JohnJohn SmithSmith 2525
55 JaneJane SmithSmith 2005-11-04T12:00:002005-11-04T12:00:00

OPENJSON trasforma la matrice di oggetti JSON in una tabella in cui ogni oggetto è rappresentato come una riga e le coppie chiave-valore vengono restituite come celle.OPENJSON transforms the array of JSON objects into a table in which each object is represented as one row, and key/value pairs are returned as cells. L'output osserva le regole seguenti.The output observes the following rules.

  • OPENJSON converte i valori JSON nei tipi specificati nella clausola WITH.OPENJSON converts JSON values to the types specified in the WITH clause.
  • OPENJSON può gestire sia coppie chiave-valore flat che gli oggetti annidati organizzati gerarchicamente.OPENJSON can handle both flat key/value pairs and nested, hierarchically organized objects.
  • Non è necessario restituire tutti i campi contenuti nel testo JSON.You don't have to return all the fields contained in the JSON text.
  • OPENJSON restituisce valori NULL se non esistono valori JSON.OPENJSON returns NULL values if JSON values don't exist.
  • È possibile specificare un percorso dopo la definizione del tipo per fare riferimento a una proprietà annidata o a una proprietà con un nome diverso.You can optionally specify a path after the type specification to reference a nested property or to reference a property by a different name.
  • Il prefisso strict facoltativo nel percorso specifica che i valori per le proprietà specificate devono esistere nel testo JSON.The optional strict prefix in the path specifies that values for the specified properties must exist in the JSON text.

Per altre informazioni, vedere Convertire dati JSON in righe e colonne con la funzione OPENJSON (SQL Server) e OPENJSON (Transact-SQL).For more info, see Convert JSON Data to Rows and Columns with OPENJSON (SQL Server) and OPENJSON (Transact-SQL).

Convertire dati di SQL Server in formato JSON o esportare JSONConvert SQL Server data to JSON or export JSON

Formattare i dati SQL Server o i risultati delle query JSON in formato JSON aggiungendo la clausola FOR JSON a un'istruzione SELECT .Format SQL Server data or the results of SQL queries as JSON by adding the FOR JSON clause to a SELECT statement. Usare la clausola FOR JSON per delegare la formattazione dell'output JSON dalle applicazioni client a SQL Server.Use FOR JSON to delegate the formatting of JSON output from your client applications to SQL Server. Per altre informazioni, vedere Formattare i risultati delle query in formato JSON con FOR JSON (SQL Server).For more info, see Format Query Results as JSON with FOR JSON (SQL Server).

L'esempio seguente usa la modalità PATH con la clausola FOR JSON.The following example uses PATH mode with the FOR JSON clause.

SELECT id, firstName AS "info.name", lastName AS "info.surname", age, dateOfBirth as dob  
FROM People  
FOR JSON PATH  

Ogni FOR JSON formatta i risultati SQL come testo JSON che può essere fornito a qualsiasi app che riconosce JSON.The FOR JSON clause formats SQL results as JSON text that can be provided to any app that understands JSON. L'opzione PATH usa alias separati da punti nella clausola SELECT per annidare oggetti nei risultati della query.The PATH option uses dot-separated aliases in the SELECT clause to nest objects in the query results.

RisultatiResults

[{
    "id": 2,
    "info": {
        "name": "John",
        "surname": "Smith"
    },
    "age": 25
}, {
    "id": 5,
    "info": {
        "name": "Jane",
        "surname": "Smith"
    },
    "dob": "2005-11-04T12:00:00"
}] 

Per altre informazioni, vedere Formattare i risultati delle query in formato JSON con FOR JSON (SQL Server) e Clausola FOR (Transact-SQL).For more info, see Format Query Results as JSON with FOR JSON (SQL Server) and FOR Clause (Transact-SQL).

Combinare dati relazionali e dati JSONCombine relational and JSON data

SQL Server fornisce un modello ibrido per l'archiviazione e l'elaborazione dei dati relazionali e JSON usando il linguaggio Transact-SQL standard.SQL Server provides a hybrid model for storing and processing both relational and JSON data using standard Transact-SQL language. È possibile organizzare le raccolte di documenti JSON in tabelle, stabilire relazioni tra di esse, combinare colonne scalari fortemente tipizzate archiviate in tabelle con coppie chiave-valore flessibili archiviate nelle colonne JSON ed eseguire query su valori scalari e JSON in una o più tabelle usando il linguaggio Transact-SQL completo.You can organize collections of your JSON documents in tables, establish relationships between them, combine strongly-typed scalar columns stored in tables with flexible key/value pairs stored in JSON columns, and query both scalar and JSON values in one or more tables using full Transact-SQL.

Il testo JSON è in genere archiviato in colonne varchar o nvarchar e viene indicizzato come testo normale.JSON text is typically stored in varchar or nvarchar columns and is indexed as plain text. Qualsiasi funzionalità o componente di SQL Server che supporta testo supporta anche JSON, quindi non esiste quasi nessun vincolo nell'interazione tra JSON e altre funzionalità di SQL Server.Any SQL Server feature or component that supports text supports JSON, so there are almost no constraints on interaction between JSON and other SQL Server features. I dati JSON possono essere archiviati in tabelle in memoria o temporali, i predicati della sicurezza a livello di riga possono essere applicati al testo JSON e così via.You can store JSON in In-memory or Temporal tables, you can apply Row-Level Security predicates on JSON text, and so on.

Se si hanno semplici carichi di lavoro JSON in cui si vuole usare un linguaggio di query personalizzato per l'elaborazione di documenti JSON, prendere in considerazione Microsoft Azure DocumentDB.If you have pure JSON workloads where you want to use a query language that's customized for the processing of JSON documents, consider Microsoft Azure DocumentDB.

Ecco alcuni casi d'uso che mostrano come usare il supporto JSON integrato in SQL ServerSQL Server.Here are some use cases that show how you can use the built-in JSON support in SQL ServerSQL Server.

Restituire dati da una tabella di SQL Server formattata come JSONReturn data from a SQL Server table formatted as JSON

Se si ha un servizio Web che preleva i dati dal livello di database e li restituisce in formato JSON oppure framework o librerie JavaScript che accettano dati formattati come JSON, è possibile formattare l'output JSON direttamente in una query SQL.If you have a web service that takes data from the database layer and returns it in JSON format, or JavaScript frameworks or libraries that accept data formatted as JSON, you can format JSON output directly in a SQL query. Anziché scrivere codice o, ad esempio includere una libreria per convertire i risultati di una query tabulare e quindi serializzare gli oggetti in formato JSON, è possibile usare FOR JSON per delegare la formattazione JSON a SQL Server.Instead of writing code or including a library to convert tabular query results and then serialize objects to JSON format, you can use FOR JSON to delegate the JSON formatting to SQL Server.

Ad esempio, può essere necessario generare output JSON che sia conforme alla specifica OData.For example, you might want to generate JSON output that's compliant with the OData specification. Il servizio Web prevede una richiesta e una risposta nel formato seguente.The web service expects a request and response in the following format.

  • Richiesta: /Northwind/Northwind.svc/Products(1)?$select=ProductID,ProductNameRequest: /Northwind/Northwind.svc/Products(1)?$select=ProductID,ProductName

  • Risposta: {"@odata.context":"http://services.odata.org/V4/Northwind/Northwind.svc/$metadata#Products(ProductID,ProductName)/$entity","ProductID":1,"ProductName":"Chai"}Response: {"@odata.context":"http://services.odata.org/V4/Northwind/Northwind.svc/$metadata#Products(ProductID,ProductName)/$entity","ProductID":1,"ProductName":"Chai"}

    Questo URL OData rappresenta una richiesta per le colonne ProductID e ProductName per il prodotto con id 1.This OData URL represents a request for the ProductID and ProductName columns for the product with id 1. È possibile usare la clausola FOR JSON per formattare l'output come previsto in SQL Server.You can use FOR JSON to format the output as expected in SQL Server.

SELECT 'http://services.odata.org/V4/Northwind/Northwind.svc/$metadata#Products(ProductID,ProductName)/$entity'
 AS '@odata.context',   
 ProductID, Name as ProductName   
FROM Production.Product  
WHERE ProductID = 1  
FOR JSON AUTO  

Il risultato di questa query è testo JSON interamente conforme alla specifica OData.The output of this query is JSON text that's fully compliant with OData spec. Formattazione e sequenza di escape vengono gestite da SQL Server.Formatting and escaping are handled by SQL Server. SQL Server può anche formattare i risultati delle query in qualsiasi formato, ad esempio OData JSON o GeoJSON. Per altre informazioni, vedere Returning spatial data in GeoJSON format (Restituzione di dati spaziali in formato GeoJSON).SQL Server can also format query results in any format such as OData JSON or GeoJSON - for more info, see Returning spatial data in GeoJSON format.

Analizzare i dati JSON con query SQLAnalyze JSON data with SQL queries

Se è necessario filtrare o aggregare dati JSON per la creazione di report, è possibile usare OPENJSON per trasformare i dati JSON in formato relazionale.If you have to filter or aggregate JSON data for reporting purposes, you can use OPENJSON to transform JSON to relational format. Quindi, usare le funzioni Transact-SQLTransact-SQL predefinite e standard per preparare i report.Then use standard Transact-SQLTransact-SQL and built-in functions to prepare the reports.

SELECT Tab.Id, SalesOrderJsonData.Customer, SalesOrderJsonData.Date  
FROM   SalesOrderRecord AS Tab  
          CROSS APPLY  
     OPENJSON (Tab.json, N'$.Orders.OrdersArray')  
           WITH (  
              Number   varchar(200) N'$.Order.Number',   
              Date     datetime     N'$.Order.Date',  
              Customer varchar(200) N'$.AccountNumber',   
              Quantity int          N'$.Item.Quantity'  
           )  
  AS SalesOrderJsonData  
WHERE JSON_VALUE(Tab.json, '$.Status') = N'Closed'  
ORDER BY JSON_VALUE(Tab.json, '$.Group'), Tab.DateModified  

È possibile usare sia le colonne sia i valori della tabella standard dal testo JSON nella stessa query.Both standard table columns and values from JSON text can be used in the same query. È possibile aggiungere indici nell'espressione JSON_VALUE(Tab.json, '$.Status') per migliorare le prestazioni della query.You can add indexes on the JSON_VALUE(Tab.json, '$.Status') expression to improve performance of query. Per altre informazioni, vedere Indicizzazione dei dati JSON.For more info, see Index JSON data.

Importare i dati JSON in tabelle di SQL ServerImport JSON data into SQL Server tables

Se è necessario caricare dati JSON da un servizio esterno in SQL Server, è possibile usare OPENJSON per importare i dati in SQL Server, anziché analizzare i dati nel livello dell'applicazione.If you have to load JSON data from an external service into SQL Server, you can use OPENJSON to import the data into SQL Server instead of parsing the data in the application layer.

DECLARE @jsonVariable NVARCHAR(MAX)

SET @jsonVariable = N'[  
        {  
          "Order": {  
            "Number":"SO43659",  
            "Date":"2011-05-31T00:00:00"  
          },  
          "AccountNumber":"AW29825",  
          "Item": {  
            "Price":2024.9940,  
            "Quantity":1  
          }  
        },  
        {  
          "Order": {  
            "Number":"SO43661",  
            "Date":"2011-06-01T00:00:00"  
          },  
          "AccountNumber":"AW73565",  
          "Item": {  
            "Price":2024.9940,  
            "Quantity":3  
          }  
       }  
  ]'

INSERT INTO SalesReport  
SELECT SalesOrderJsonData.*  
FROM OPENJSON (@jsonVariable, N'$.Orders.OrdersArray')  
           WITH (  
              Number   varchar(200) N'$.Order.Number',   
              Date     datetime     N'$.Order.Date',  
              Customer varchar(200) N'$.AccountNumber',   
              Quantity int          N'$.Item.Quantity'  
           )  
  AS SalesOrderJsonData;  

Il contenuto della variabile JSON può essere fornito da un servizio REST esterno, inviato come parametro da un framework JavaScript sul lato client o caricato da file esterni.The content of the JSON variable can be provided by an external REST service, sent as a parameter from a client-side JavaScript framework, or loaded from external files. È possibile inserire, aggiornare o unire facilmente i risultati dal testo JSON in una tabella SQL.You can easily insert, update or merge results from JSON text into a SQL Server table. Per altre informazioni su questo scenario, vedere i post di blog seguenti.For more info about this scenario, see the following blog posts.

Caricare file JSON in SQL ServerLoad JSON files into SQL Server

Le informazioni archiviate nei file possono essere formattate come JSON standard o JSON delimitato da righe.Information stored in files can be formatted as standard JSON or Line-Delimited JSON. SQL Server può importare il contenuto di file JSON, analizzarlo usando le funzioni OPENJSON e JSON_VALUE e caricarlo nelle tabelle.SQL Server can import the contents of JSON files, parse it using the OPENJSON or JSON_VALUE functions, and load it into tables.

  • Se i documenti JSON vengono archiviati in file locali, unità di rete condivise o posizioni di archiviazione file di Azure accessibili da SQL Server, è possibile usare l'importazione in blocco per caricare i dati JSON in SQL Server.If your JSON documents are stored in local files, on shared network drives, or in Azure File Storage locations that can be accessed by SQL Server, you can use bulk import to load your JSON data into SQL Server. Per altre informazioni su questo scenario, vedere Importing JSON files into SQL Server using OPENROWSET (BULK)(Importazione di file JSON in SQL Server usando OPENROWSET (BULK)).For more info about this scenario, see Importing JSON files into SQL Server using OPENROWSET (BULK).

  • Se i file JSON delimitati da righe vengono archiviati in Archiviazione BLOB Azure o nel file system di Hadoop, è possibile usare PolyBase per caricare il testo JSON, analizzarlo nel codice Transact-SQL e caricarlo nelle tabelle.If your line-delimited JSON files are stored in Azure Blob Storage or the Hadoop file system, you can use Polybase to load JSON text, parse it in Transact-SQL code, and load it into tables.

Test drive del supporto JSON integratoTest drive built-in JSON support

Test drive del supporto JSON integrato con il database di esempio AdventureWorks.Test drive built-in JSON support with the AdventureWorks sample database. Per ottenere il database di esempio AdventureWorks, è necessario scaricare almeno il file di database e il file di script ed esempi da qui.To get the AdventureWorks sample database, download at least the database file and the samples and scripts file from here. Dopo aver ripristinato il database di esempio in un'istanza di SQL Server 2016, decomprimere il file di esempi e aprire il file "JSON Sample Queries procedures views and indexes.sql" dalla cartella JSON.After you restore the sample database to an instance of SQL Server 2016, unzip the samples file and open the "JSON Sample Queries procedures views and indexes.sql" file from the JSON folder. Eseguire gli script in questo file per riformattare alcuni dati esistenti come dati JSON, eseguire report e query di esempio sui dati JSON, indicizzare i dati JSON e importare ed esportare JSON.Run the scripts in this file to reformat some existing data as JSON data, run sample queries and reports over the JSON data, index the JSON data, and import and export JSON.

Di seguito sono elencate le operazioni possibili con gli script inclusi nel file.Here's what you can do with the scripts included in the file.

  1. Denormalizzare lo schema esistente per creare colonne di dati JSON.Denormalize the existing schema to create columns of JSON data.

    1. Archiviare informazioni dalle tabelle SalesReasons SalesOrderDetails, SalesPerson, Customer e da altre tabelle che contengono informazioni relative all'ordine di vendita nelle colonne JSON della tabella SalesOrder_json.Store information from SalesReasons, SalesOrderDetails, SalesPerson, Customer, and other tables that contain information related to sales order into JSON columns in the SalesOrder_json table.

    2. Archiviare informazioni dalle tabelle EmailAddresses/PersonPhone nella tabella Person_json come matrici di oggetti JSON.Store information from EmailAddresses/PersonPhone tables into the Person_json table as arrays of JSON objects.

  2. Creare procedure e viste che eseguono query sui dati JSON.Create procedures and views that query JSON data.

  3. Indicizzare i dati JSON: creare indizi sulle proprietà JSON e indici full-text.Index JSON data – create indexes on JSON properties and full-text indexes.

  4. Importare ed esportare JSON: creare ed eseguire procedure per esportare il contenuto delle tabelle Person e SalesOrder come risultati JSON, quindi importare e aggiornare le tabelle Person e SalesOrder usando input JSON.Import and export JSON – create and run procedures that export the content of the Person and the SalesOrder tables as JSON results, and import and update the Person and the SalesOrder tables using JSON input.

  5. Eseguire esempi di query: eseguire alcune query che chiamano le stored procedure e le viste create nei passaggi 2 e 4.Run query examples – run some queries that call the stored procedures and views created in steps 2 and 4.

  6. Eseguire la pulizia degli script: eseguire alcune query che chiamano le stored procedure e le viste create nei passaggi 2 e 4.Clean up scripts – don't run this part if you want to keep the stored procedures and views created in steps 2 and 4.

Altre informazioni sul supporto JSON integratoLearn more about built-in JSON support

Argomenti in questa sezioneTopics in this section

Formattare i risultati delle query in formato JSON con FOR JSON (SQL Server)Format Query Results as JSON with FOR JSON (SQL Server)
Usare la clausola FOR JSON per delegare la formattazione dell'output JSON dalle applicazioni client a SQL Server.Use the FOR JSON clause to delegate the formatting of JSON output from your client applications to SQL Server.

Convertire dati JSON in righe e colonne con la funzione OPENJSON (SQL Server)Convert JSON Data to Rows and Columns with OPENJSON (SQL Server)
Usare la clausola OPENJSON per importare i dati JSON in SQL Server o per convertire dati JSON in formato relazionale per un'app o un servizio che al momento non utilizza direttamente JSON, ad esempio SQL Server Integration Services.Use OPENJSON to import JSON data into SQL Server, or to convert JSON data into relational format for an app or service that can't currently consume JSON directly, such as SQL Server Integration Services.

Convalidare, eseguire query e modificare i dati JSON con funzioni predefinite (SQL Server)Validate, Query, and Change JSON Data with Built-in Functions (SQL Server)
Usare queste funzioni predefinite per convalidare il testo JSON e per estrarre un valore scalare, un oggetto o una matrice.Use these built-in functions to validate JSON text and to extract a scalar value, an object, or an array.

JSON Path Expressions (Espressioni di percorso JSON) (SQL Server)JSON Path Expressions (SQL Server)
Usare un'espressione di percorso per specificare il testo JSON che si vuole usare.Use a path expression to specify the JSON text that you want to use.

Indicizzazione dei dati JSONIndex JSON data
Usare colonne calcolate per creare indici con riconoscimento delle regole di confronto rispetto alle proprietà nei documenti JSON.Use computed columns to create collation-aware indexes over properties in JSON documents.

Risolvere i problemi comuni di JSON in SQL ServerSolve common issues with JSON in SQL Server
Trovare le risposte ad alcune domande comuni sul supporto JSON integrato in SQL Server.Find answers to some common questions about the built-in JSON support in SQL Server.

Post del blog MicrosoftMicrosoft blog posts

Argomenti di riferimentoReference topics