'deserlize json file with coordinates to C# classes
I've a json file with coordinates [x,y] I would like to do query based on the coordinates but i did not know how to transfer this to c# classes. I tried using https://json2csharp.com/ but it gives me the classes like this
public class DatasetData
{
public int id { get; set; }
public int channel_id { get; set; }
public string location { get; set; }
public int speed_1 { get; set; }
public int speed_2 { get; set; }
public int speed_3 { get; set; }
}
public class Root
{
public List<DatasetData> dataset_data { get; set; }
}
This is the json. As you see I've inside the location; type and coordinates but i don't know to extract them to classes and using them.
{
"dataset_data":[
{
"id":1234,
"channel_id":2,
"location":"{\"type\":\"Point\",\"coordinates\":[-1.17273271,51.9132423]}",
"speed_1":1,
"speed_2":2,
"speed_3":3
}
]
}
Solution 1:[1]
The problem with your json is that the location is not an object rather than a string. So, you need to deserialize that as well.
If you define your Location class as Lasse V. Karlsen suggested:
public class Location
{
public string type { get; set; }
public List<double> coordinates { get; set; }
}
Then all you need to do is to modify your DatasetData class like this:
public class DatasetData
{
...
public string location { set; private get;}
public Location Location => JsonConvert.DeserializeObject<Location>(location);
...
}
- The
locationproperty is write only from the deserialization perspective - The
Locationproperty is read only from the deserialization perspective
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Peter Csala |
