我有一个如下所示的GeoJSON几何图形:
{
"type":"Point",
"coordinates":[-121.35753,38.49392]
}
我在创建一个可以表示这种情况的类时遇到了麻烦。我不断收到“无法转换类型的对象”。我以为这是我在这里遇到的坐标数组。
我尝试了这两个类定义:
Public Class GeoJSONPoint
Public Property type As String
Public Property coordinates() As Double
End Class
Public Class GeoJSONPoint
Public Property type As String
Public Property coordinates as List(Of Double)
End Class
找出点之后,我还需要弄清楚MultiPolygons,它是一个像这样的数组数组:
{
"type":"MultiPolygon",
"coordinates":[[[[-118.718979785211,34.2749418860063],[-118.71897943847,34.2746561231818],[-118.719144944,34.2746560927904],[-118.719145294476,34.2749418391076],[-118.718979785211,34.2749418860063]]]]
}
答案 0 :(得分:0)
好,所以问题不在于我的课,而是我如何反序列化JSON。
即使完整的错误消息使它看起来好像暗示了正确的类型,这也不起作用:
Point = JsonConvert.DeserializeObject(Site.geoJSON)
您必须明确告诉它类型:
Point = JsonConvert.DeserializeObject(Of GeoJSONPoint)(Site.geoJSON)
更多测试表明,我可以为Point以及多边形和MultiPolygon以及它们不同级别的嵌套数组的坐标使用单个类定义:
Public Class geoJSONGeometry
Public Property type As String
Public Property coordinates As Object
End Class