.net - Retrieve data from dynamic Json object -


i'm trying read data dynamic object using json.net, i'm getting json string using webclient.downloadstring.

    {   "player1": {   "id": 21426685,   "name": "player1",   "profileiconid": 508,   "revisiondate": 1436353103000,   "level": 30   },   "player2": {   "id": 27864632,   "name": "player2",   "profileiconid": 508,   "revisiondate": 1436444512000,   "level": 30    }     } 

each time property name (player) different depending on api call. can deserialize json string using json.net , name of each property can't figure out how data of each property since won't have constant name

    dim jsonobj object = jsonconvert.deserializeobject(championsreply)     each p jproperty in jsonobj          listbox1.items.add(p.name)     next 

anyone point me way make work?

instead of dynamic, try data structure using dictionary string key (for dynamic key) , player object.

var response = jsonconvert.deserializeobject<dictionary<string, player>>(championsreply); foreach (var key in response.keys)     listbox1.items.add(response[key].name); // player key  public class player  {     [jsonproperty("id")]     public string id { get; set; }      [jsonproperty("name")]     public string name { get; set; }      [jsonproperty("profileiconid")]     public int profileiconid { get; set; }      [jsonproperty("revisiondate")]     public long revisiondate { get; set; }      [jsonproperty("level")]     public int level { get; set; } } 

and in vb.net:

dim response = jsonconvert.deserializeobject(of dictionary(of string, player))(championsreply) each key string in response.keys     response(key).id next  public class player     <jsonproperty("id")> _     public property id() string                     return m_id         end         set             m_id = value         end set     end property     private m_id string      <jsonproperty("name")> _     public property name() string                     return m_name         end         set             m_name = value         end set     end property     private m_name string      <jsonproperty("profileiconid")> _     public property profileiconid() integer                     return m_profileiconid         end         set             m_profileiconid = value         end set     end property     private m_profileiconid integer      <jsonproperty("revisiondate")> _     public property revisiondate() long                     return m_revisiondate         end         set             m_revisiondate = value         end set     end property     private m_revisiondate long      <jsonproperty("level")> _     public property level() integer                     return m_level         end         set             m_level = value         end set     end property     private m_level integer end class 

great tool: http://converter.telerik.com/


Comments