Parsing JSON in C#
Non ho ben capito se il C# già include una libreria / classe per il parsing del JSON, comunque io ho deciso di usare Json.NET!
Inoltre vedremo come prendere i dati da un web service remoto.
Prima di tutto dovete aggiungere la libreria al vostro progetto, e potete farlo direttamente da NuGet.
A questo punto creiamo una classe POJO che rappresenta i campi del JSON:
using System;
namespace Book.Models
{
public class Item
{
public string Id { get; set; }
public string Title { get; set; }
public string Author { get; set; }
}
}
Ovviamente i nomi dei campi devono corrispondere a quelli del JSON.
Adesso possiamo prendere i dati da remoto:
using Book.Models;
using Newtonsoft.Json;
namespace Book.Services
{
public class MockDataStore
{
List items;
public MockDataStore()
{
items = new List();
}
public async Task GetItemsAsync
(bool forceRefresh = false)
{
var client = new HttpClient();
var json = await client.
GetStringAsync("https://www.sito.com/file.php";
List lb = JsonConvert.DeserializeObject(json);
foreach (Item l in lb)
{
items.Add(l);
}
return await Task.FromResult(items);
}
}
}
Il tutto in maniera asincrona.
Enjoy!
c# json json.net
Commentami!