I servizi REST che si scambiano dati nel formato JSON sono tra i più consueti che possiamo trovare attualmente e sono molto comodi da sviluppare per le proprie esigenze.
In WinRT possiamo recuperare i dati di un servizio REST attraverso una semplice chiamata HTTP con HttpClient e il metodo GetStringAsync, a cui passare l'url specifico.
Il parsing della stringa di ritorno, con struttura JSON, è supportato in modo nativo attraverso le classi del namespace Windows.Data.Json prima fra tutte JsonObject, con il cui metodo Parse possiamo convertire una stringa in un oggetto, per poi recuperare in modo strutturato i vari dati.
var client = new HttpClient(); var data = await client.GetStringAsync("http://echo.jsontest.com/firstname/Max/lastname/Osborne/");
Con una response come questa:
{ lastname: "Osborne", firstname: "Max" }
Possiamo procedere come di seguito:
var jsonObj = Windows.Data.Json.JsonObject.Parse(data); var firstname = jsonObj.GetNamedString("firstname"); var lastname = jsonObj.GetNamedString("lastname"); textBlock1.Text = string.Concat(firstname, Environment.NewLine, lastname);
Una volta creato l'oggetto JsonOject abbiamo a disposizione una serie di metodi per convertire i dati restituiti nei rispettivi tipi, nell'esempio possiamo vedere GetNamedString che converte in stringa il valore di una specifica chiave.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Estrarre dati randomici da una lista di oggetti in C#
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Creare una libreria CSS universale: Cards
Utilizzare Azure Cosmos DB con i vettori
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Aggiornare a .NET 9 su Azure App Service
Utilizzare QuickGrid di Blazor con Entity Framework
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core