C#JSON;反序列化有时具有空值(非null)的数组

C#JSON;反序列化有时具有空值(非null)的数组,c#,arrays,json,null,json.net,C#,Arrays,Json,Null,Json.net,我试图反序列化一个JSON响应,我需要一个函数来检测数组是否为空,如果它不是空的,我希望它返回值 JSON数组为空时如下所示: {"metrics":[]} 当它不是空的时,它可以像下面的任何一个: {"metrics":["flow"]} {"metrics":["energy"]} {"metrics":["flow","energy"]} 我怎样才能检测到这个 它不适用于NullValueHandling,因为如果数组为空,它就不是null,它根本没有任何值 我得到一个关于找不到索

我试图反序列化一个JSON响应,我需要一个函数来检测数组是否为空,如果它不是空的,我希望它返回值

JSON数组为空时如下所示:

{"metrics":[]}
当它不是空的时,它可以像下面的任何一个:

{"metrics":["flow"]}

{"metrics":["energy"]}

{"metrics":["flow","energy"]}
我怎样才能检测到这个

它不适用于NullValueHandling,因为如果数组为空,它就不是null,它根本没有任何值

我得到一个关于找不到索引的错误


我在类中将数组作为列表返回。

假设您使用Newtonsoft.Json反序列化Json:

class Data
{
    public List<string> Metrics { get; set; }
}

var json = "{\"metrics\":[]}";
var obj = JsonConvert.DeserializeObject<Data>(json);

假设您使用Newtonsoft.Json反序列化Json:

class Data
{
    public List<string> Metrics { get; set; }
}

var json = "{\"metrics\":[]}";
var obj = JsonConvert.DeserializeObject<Data>(json);

你说你的代码有错误。你能发布相关的代码吗?每次都以同样的方式反序列化它,然后检查你的
列表是否为空或者是否为空。我认为NewtonSoft的JSON反序列化程序可以很好地处理这个问题。它会给你一个长度为0的数组。你说你的代码有错误。你能发布相关的代码吗?每次都以同样的方式反序列化它,然后检查你的
列表是否为空或者是否为空。我认为NewtonSoft的JSON反序列化程序可以很好地处理这个问题。它将为您提供一个长度为0的数组。