json序列化时数组声明有问题

There is a problem with the declaration of array during serialization of json

我在 c# 中使用 API 收到了 Json 文件。

序列化数据时,数组出现问题。

{
   "features":[
      {
         "geometry":{
            "type":"Point",
            "coordinates":[
               126.0,
               37.0
            ]
         },
      },
      {
         "geometry":{
            "type":"LineString",
            "coordinates":[
               [
                  126.0,
                  37.0
               ],
               [
                  126.0,
                  37.0
               ]
            ]
         },
      }
   ]
}

这是 json 文件的一部分。 而“坐标”数组是重复的,但一个是一维的,另一个是二维的。 我不知道如何声明这个。这是我的代码。 我应该如何声明 geometry class?

public class JsonClass
{
    public string type { get; set; }
    public List<features> features { get; set; }
}

public class features
{
    public string type { get; set; }
    public geometry geometry { get; set; }
    public properties properties { get; set; }
}

       
public class geometry
{
    public string type { get; set; }
    public float[] coordinates { get; set; }
    //or public float[,] coordinates { get; set; }?
    //both error...
}

请理解我使用了翻译器,因为我不会说英语。 谢谢!

试试这个,它已在 VS 2022 中测试过

var data = JsonConvert.DeserializeObject<Data>(json);

public partial class Data
{
    [JsonProperty("features")]
    public List<Feature> Features { get; set; }
}

public partial class Feature
{
    [JsonProperty("geometry")]
    public Geometry Geometry { get; set; }
}

public partial class Geometry
{
    [JsonProperty("type")]
    public string Type { get; set; }

    [JsonProperty("coordinates")]
    public List<object> _coordinates
    {
        set
        {
            if (value != null && value.Count > 0)
                if (double.TryParse(value[0].ToString(), out _))
                {
                    Coordinates1D = value.Select(x => Convert.ToDouble(x)).ToList();
                }
                else
                    Coordinates2D = value.Select(x =>  ((JArray)x).ToObject<List<double>>()).ToList();
        }
    }

    public List<double> Coordinates1D { get; set; }
    
    public List<List<double>> Coordinates2D { get; set; }
}

但在

之前修复你的json
{
    "features": [
        {
            "geometry": {
                "type": "Point",
                "coordinates": [
                    126.0,
                    37.0
                ]
            }
        },
        {
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [
                        126.0,
                        37.0
                    ],
                    [
                        126.0,
                        37.0
                    ]
                ]
            }
        }
    ]
}