Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JSON.NET DeserializeObject to List of Objects

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; }         } 
like image 767
Criss Avatar asked Jan 18 '15 16:01

Criss


People also ask

Can you serialize a list in JSON?

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.

How do I deserialize a JSON string?

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.


1 Answers

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.

like image 61
chris31389 Avatar answered Sep 24 '22 21:09

chris31389