I'm trying to Deserialize object to list of object using JSON.NET lib. My json file is:
[ { "id": 1, "name": "Poczta", "description": "Opis", "latitude": 52.25197, "longitude": 20.896355, "accuracy": 0, "type": "", "image": null }, { "id": 2, "name": "WAT", "description": "Budynek główny - sztab.\r\nzażółć gęślą jaźń", "latitude": 52.2531213, "longitude": 20.8995849, "accuracy": 0, "type": "Uczelnia", "image": null }, { "id": 3, "name": "Przychodnia", "description": "Opis", "latitude": 52.250808, "longitude": 20.895348, "accuracy": 0, "type": "", "image": null }, { "id": 4, "name": "DS3", "description": "Opis", "latitude": 52.250063, "longitude": 20.895847, "accuracy": 0, "type": "", "image": null }, { "id": 5, "name": "DS2", "description": "Opis", "latitude": 52.2497674, "longitude": 20.8966583, "accuracy": 0, "type": "", "image": null }, { "id": 6, "name": "DS1", "description": "Opis", "latitude": 52.25088, "longitude": 20.897492, "accuracy": 0, "type": "", "image": null }, { "id": 7, "name": "DS4", "description": "To jest opis", "latitude": 52.2539982, "longitude": 20.8971716, "accuracy": 0, "type": "", "image": null }, { "id": 15, "name": "a", "description": "b", "latitude": 52.250105, "longitude": 20.896124, "accuracy": 0, "type": "Uczelnia", "image": null } ]
And I wrote some code to do that, but it doesn't work. I tried many options like dynamic deserialize and now i'm tried to make a list.
async private void webServiceGetPoints() { try { var client = new HttpClient(); var response = await client.GetAsync(new Uri("\\private\\")); var result = await response.Content.ReadAsStringAsync(); List<WebServiceTag> convert = JsonConvert.DeserializeObject<List<WebServiceTag>>(result) as List<WebServiceTag>; Debug.WriteLine(convert.Count); } catch (JsonSerializationException jsonerr) { Debug.WriteLine(jsonerr.ToString()); } catch (Exception e) { Debug.WriteLine(e.ToString()); } }
This code based on my own class with is:
class WebServiceTag { [JsonProperty("id")] public int id { get; set; } [JsonProperty("name")] public string name { get; set; } [JsonProperty("description")] public string description { get; set; } [JsonProperty("latitude")] public double latitude { get; set; } [JsonProperty("longitude")] public double longitude { get; set; } [JsonProperty("accuracy")] public int accuracy { get; set; } [JsonProperty("type")] public string type { get; set; } [JsonProperty("image")] public string image { get; set; } }
Json.NET has excellent support for serializing and deserializing collections of objects. To serialize a collection - a generic list, array, dictionary, or your own custom collection - simply call the serializer with the object you want to get JSON for.
A common way to deserialize JSON is to first create a class with properties and fields that represent one or more of the JSON properties. Then, to deserialize from a string or a file, call the JsonSerializer. Deserialize method.
I found that trying to use:
JsonConvert.DeserializeObject<List<T>>()
wouldn't work for me. I found that this worked instead.
JsonConvert.DeserializeObject<IEnumerable<T>>()
Hope its a better late than never answer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With