Générer des classes c# avec du JSON (facilement)

Publié dans: 
Dans cet article nous allons vous montrer comment générer des classes C# à partir d'une structure JSON.
Le plugin WebEssentials de visual studio nous offre une fonctionnalité qui nous facilite la tâche.
 
pour y avoir accès il suffit de suivre ces étapes:
{
    "glossary": {
        "title": "example glossary",
		"GlossDiv": {
            "title": "S",
			"GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
					"SortAs": "SGML",
					"GlossTerm": "Standard Generalized Markup Language",
					"Acronym": "SGML",
					"Abbrev": "ISO 8879:1986",
					"GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
						"GlossSeeAlso": ["GML", "XML"]
                    },
					"GlossSee": "markup"
                }
            }
        }
    }
}
  • Ouvrir Visual Studio 
  • Ajouter une nouvelle classe

  • Supprimer le contenu de cette classe et laisser le namespace

  • Edit --> Past special--> Past Json as classes

 

  • Et voila le tour est joué

 

namespace ConsoleApplication1
{

    public class Rootobject
    {
        public Glossary glossary { get; set; }
    }

    public class Glossary
    {
        public string title { get; set; }
        public Glossdiv GlossDiv { get; set; }
    }

    public class Glossdiv
    {
        public string title { get; set; }
        public Glosslist GlossList { get; set; }
    }

    public class Glosslist
    {
        public Glossentry GlossEntry { get; set; }
    }

    public class Glossentry
    {
        public string ID { get; set; }
        public string SortAs { get; set; }
        public string GlossTerm { get; set; }
        public string Acronym { get; set; }
        public string Abbrev { get; set; }
        public Glossdef GlossDef { get; set; }
        public string GlossSee { get; set; }
    }

    public class Glossdef
    {
        public string para { get; set; }
        public string[] GlossSeeAlso { get; set; }
    }

}