Deserializing JSON into one of several C# subclasses

后端 未结 1 1228
無奈伤痛
無奈伤痛 2020-12-06 01:58

I have a json structure that looks something like this:

\"list\":[
  {
    \"type\":\"link\",
    \"href\":\"http://google.com\"
  },
  {
    \"type\":\"imag         


        
相关标签:
1条回答
  • 2020-12-06 02:42

    As @AmithGeorge suggested, you can use a dynamic object to dynamically parse your json object. You can use this great dynamic class for JSON by Shawn Weisfeld. Here is his blog explaining how he do it.

    JavaScriptSerializer jss = new JavaScriptSerializer();
    jss.RegisterConverters(new JavaScriptConverter[] { new DynamicJsonConverter() });
    
    dynamic glossaryEntry = jss.Deserialize(json, typeof(object)) as dynamic;
    
    Console.WriteLine("glossaryEntry.glossary.title: " + glossaryEntry.glossary.title);
    Console.WriteLine("glossaryEntry.glossary.GlossDiv.title: " + glossaryEntry.glossary.GlossDiv.title);
    Console.WriteLine("glossaryEntry.glossary.GlossDiv.GlossList.GlossEntry.ID: " + glossaryEntry.glossary.GlossDiv.GlossList.GlossEntry.ID);
    Console.WriteLine("glossaryEntry.glossary.GlossDiv.GlossList.GlossEntry.GlossDef.para: " + glossaryEntry.glossary.GlossDiv.GlossList.GlossEntry.GlossDef.para);
    foreach (var also in glossaryEntry.glossary.GlossDiv.GlossList.GlossEntry.GlossDef.GlossSeeAlso)
    {
        Console.WriteLine("glossaryEntry.glossary.GlossDiv.GlossList.GlossEntry.GlossDef.GlossSeeAlso: " + also);
    }
    
    0 讨论(0)
提交回复
热议问题