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
Post a Comment