I get this JSON response from the system I'm connecting to, and try to find a better way to deserialize it into a C # object. I am currently using RestSharp , which seems pretty straight forward, but the JSON format puzzles me a bit. Here is the format it comes in:
[ {"name": "Tickets:", "schema": [ {"dataType": "string", "colName": "First", "idx": 0}, {"dataType": "string", "colName": "Second", "idx": 1}, {"dataType": "string", "colName": "Name", "idx": 2} ], "data": [ ["bill", "test", "joe"], ["bill2", "test2", "joe2"], ["bill3", "test3", "joe3"] ] } ]
Here is my current code:
var url = "http://myUrl:10111"; var client = new RestClient { BaseUrl = url }; var request = new RestRequest { Method = Method.GET, Resource = "/search?fmt=Json", RequestFormat = DataFormat.Json }; request.AddHeader("accept", "application/json"); var response = client.Execute(request); var wptResponse = new JsonDeserializer().Deserialize<TicketResults>(response); return wptResponse;
but as stated above, I am trying to figure out the correct way to model the TicketResults object to support deserializing this message above.
Ideally, I would like something like this:
public class TicketResults { public List<Ticket> Tickets {get;set;} } public class Ticket { public string First {get;set;} public string Second {get;set;} public string Name {get;set;} }
and in this example above you will get three entries in the ticket collection.
Also, the above JSON format is normal, as I have never seen it break into a separate section of the schema and data (I can see where it can save some space, but in this case the messages are not so big)