C# 如何反序列化嵌套JSON数组?

C# 如何反序列化嵌套JSON数组?,c#,json,json.net,deserialization,C#,Json,Json.net,Deserialization,我正在尝试反序列化GeoJson,以便将其分解并存储在数据库中。当我尝试反序列化它时,坐标的反序列化失败 我将以下课程用于几何图形: public class GeoJsonGeometry { public string type { get; set; } public string[, ,] coordinates { get; set; } } “几何学”:{“类型”:“多边形”,“坐标”:[[[-85.388717,33.913044],-85.380885,33.8

我正在尝试反序列化GeoJson,以便将其分解并存储在数据库中。当我尝试反序列化它时,
坐标的反序列化失败

我将以下课程用于几何图形:

public class GeoJsonGeometry {
    public string type { get; set; }
    public string[, ,] coordinates { get; set; }
}
“几何学”:{“类型”:“多边形”,“坐标”:[[[-85.388717,33.913044],-85.380885,33.873508],-85.379455,33.866291],-85.377426,33.856047],-85.376403,33.850656],-85.364595,33.788446],-85.361844,33.773951],-85.360491,33.767958],-85.357402,33.750252],-85.355,33.739245],[,[-85.344054,33.682684],-85.342722,33.675953],-85.323792,33.580339],-85.315340,33.537646],-85.314994,33.535898],-85.314843,33.534951],-85.314091,33.530218],-85.313999,33.529807],-85.304439,33.482884],-85.308211,33.481579],-85.309250,33.483137],-85.4835,33.48483733],[763],[http]>

我尝试了
double[,]
,但也没有成功

我很困惑,因为这看起来应该很好地序列化,因为它是嵌套数组,但事实并非如此。如果您有任何帮助,我们将不胜感激


我还尝试了
List
double[][][]
,但总是失败。

JSON不支持多维数组


这是一个数组数组:
double[][]

JSON不支持多维数组


这是一个数组的数组:
double[][[]

您的
几何体
对象应该是

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

您的
几何体
对象应该是

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

最初尝试此操作后得到:无法将当前JSON数组(例如[1,2,3])反序列化为类型“System.Double”,因为该类型需要一个JSON基元值(例如字符串、数字、布尔值、null)才能正确反序列化。若要修复此错误,请将JSON更改为JSON基元值(例如字符串、数字、布尔值、null)或者将反序列化类型更改为数组或实现集合接口的类型(例如ICollection、IList)类似于可以从JSON数组反序列化的列表。还可以将JsonArrayAttribute添加到该类型以强制其从JSON数组反序列化。@Yatrix我使用部分正确的JSON对其进行了测试,结果正常。如果您发布了正确且完整的JSON,我们可以更好地回答。它根本不是该类型。原因是GeoJson数据有一些数组嵌套3深,有些嵌套4深。我没听清楚。谢谢你的帮助。@Yatrix你有反序列化geoJson的代码和完整的类模型吗?我正在数据库中存储空间数据。Thanks@Luther这是一年多以前的事了,我不知道这个东西在哪里,甚至不知道它是否已经存在了。对不起。最初尝试过这个,得到了:C无法将当前JSON数组(例如[1,2,3])反序列化为“System.Double”类型,因为该类型需要JSON基元值(例如字符串、数字、布尔值、null)才能正确反序列化。若要修复此错误,请将JSON更改为JSON基元值(例如字符串、数字、布尔值、null)或者将反序列化类型更改为数组或实现集合接口的类型(例如ICollection、IList)类似于可以从JSON数组反序列化的列表。还可以将JsonArrayAttribute添加到该类型以强制其从JSON数组反序列化。@Yatrix我使用部分正确的JSON对其进行了测试,结果正常。如果您发布了正确且完整的JSON,我们可以更好地回答。它根本不是该类型。原因是GeoJson数据有一些数组嵌套3深,有些嵌套4深。我没听清楚。谢谢你的帮助。@Yatrix你有反序列化geoJson的代码和完整的类模型吗?我正在数据库中存储空间数据。Thanks@Luther这是一年多以前的事了,我不知道这些东西在哪里,甚至不知道它是否已经存在了。对不起,我不明白为什么要这样做ion被否决了,我也有同样的问题,这篇文章也有帮助。我不明白为什么这个问题被否决了,我也有同样的问题,这篇文章也有帮助。
{
    "geometry": {
        "type": "Polygon",
        "coordinates": [
            [
                [
                    -85.388717,
                    33.913044
                ],
                [
                    -85.380885,
                    33.873508
                ],
                [
                    -85.379455,
                    33.866291
                ],
                [
                    -85.377426,
                    33.856047
                ],
                [
                    -85.376403,
                    33.850656
                ],
                [
                    -85.364595,
                    33.788446
                ],
                [
                    -85.361844,
                    33.773951
                ],
                [
                    -85.360491,
                    33.767958
                ],
                [
                    -85.357402,
                    33.750104
                ],
                [
                    -85.355252,
                    33.739245
                ],
                [
                    -85.344054,
                    33.682684
                ],
                [
                    -85.342722,
                    33.675953
                ],
                [
                    -85.323792,
                    33.580339
                ],
                [
                    -85.31534,
                    33.537646
                ],
                [
                    -85.314994,
                    33.535898
                ],
                [
                    -85.314843,
                    33.534951
                ],
                [
                    -85.314091,
                    33.530218
                ],
                [
                    -85.313999,
                    33.529807
                ],
                [
                    -85.304439,
                    33.482884
                ],
                [
                    -85.308211,
                    33.481579
                ],
                [
                    -85.30925,
                    33.483137
                ],
                [
                    -85.314852,
                    33.487603
                ]
            ]
        ]
    }
}