C# et JSON

Si vous devez utiliser des données formatées avec le standard JSON, voici un truc simple pour démarrer (mais vous pouvez complexifier à votre guise ;)). J’utilise pour ce faire l’extension Web Essentials et le package NuGet Json.NET. Le fichier données JSON que j’utilise est celui-ci: Fichier exemple JSON (source).

Voici les étapes pour prendre les données JSON, générer les classes nécessaires et téléchargés les données et remplir ces nouvelles classes:

  • Installer l’extension Web Essentials
  • Créer une nouveau fichier de classe
  • Mettre dans le presse-papier un extrait ou l’ensemble des données JSON (Copier ou CTRL-C)
  • Cliquer-droit dans l’éditeur ou dans le menu EDITION/Collage Spécial et sélectionner “Coller le code JSON en tant que classes”

image

Ceci va créer des classes à partir du code JSON. Dans notre exemple, ceci donne les classes suivantes:

public class Rootobject
{
    public Items items { get; set; }
}

public class Items
{
    public Item[] item { get; set; }
}

public class Item
{
    public string id { get; set; }
    public string type { get; set; }
    public string name { get; set; }
    public float ppu { get; set; }
    public Batters batters { get; set; }
    public Topping[] topping { get; set; }
    public Fillings fillings { get; set; }
}

public class Batters
{
    public Batter[] batter { get; set; }
}

public class Batter
{
    public string id { get; set; }
    public string type { get; set; }
}

public class Fillings
{
    public Filling[] filling { get; set; }
}

public class Filling
{
    public string id { get; set; }
    public string name { get; set; }
    public float addcost { get; set; }
}

public class Topping
{
    public string id { get; set; }
    public string type { get; set; }
}

Par la suite, nous devons télécharger ce fichier depuis notre application pour afficher/traiter les données. Pour ce faire:

  • Ajouter le package NuGet Json.NET
  • Ajouter les usings suivants:
    • using Newtonsoft.Json;
      using System.Net.Http;
  • Utilisation de HttpClient et Json.Net pour extraire les données JSON et populer nos classes
    • private static async Task<Rootobject> GetData()
      {
          HttpClient client = new HttpClient();
          var response = await client.GetStringAsync("http://www.gabrielmongeon.com/public/blog/donuts.js");
          var root = JsonConvert.DeserializeObject<Rootobject>(response);
      
          return root;
      }

Voilà, vous avez une structure de données rempli avec des données provenant de JSON. Il ne reste plus qu’à trouver/créer une source de données et d’afficher/formater ces données dans votre application.

Bonne programmation

Les commentaires sont clos