将带有坐标的json文件取消erlize为C#类



我有一个坐标为[x,y]的json文件我想根据坐标进行查询,但我不知道如何将其传递到c#类。我试着用https://json2csharp.com/但它给了我像这样的课程

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; }
}

这是json。正如你所看到的,我已经进入了这个位置;类型和坐标,但我不知道如何将它们提取到类中并使用它们。

{
"dataset_data":[
{
"id":1234,
"channel_id":2,
"location":"{"type":"Point","coordinates":[-1.17273271,51.9132423]}",
"speed_1":1,
"speed_2":2,
"speed_3":3
}
]
}
json的问题在于location不是对象,而是字符串。因此,您还需要对其进行反序列化。

如果您将Location类定义为Lasse V.Karlsen建议的:

public class Location
{
public string type { get; set; }
public List<double> coordinates { get; set; }
}

然后你所需要做的就是像这样修改你的DatasetData类:

public class DatasetData
{
...
public string location { set; private get;}
public Location Location => JsonConvert.DeserializeObject<Location>(location);
...
}
  • location属性仅从反序列化角度写入
  • Location属性从反序列化角度来看是只读的

相关内容

  • 没有找到相关文章

最新更新