我正在尝试反序列化 JSON 响应,我想要一个函数来检测数组是否为空,如果它不为空,我希望它返回值。
JSON 数组在为空时如下所示:
{"metrics":[]}
当它不为空时,它可能看起来像以下任何一种:
{"metrics":["flow"]}
{"metrics":["energy"]}
{"metrics":["flow","energy"]}
我怎样才能检测到这一点?
它不适用于 NullValueHandling,因为如果数组为空,则它不是空的,它根本没有任何值。
我收到有关找不到索引的错误。
我将数组作为类中的列表返回。
假设你正在使用Newtonsoft.Json来反序列化json:
class Data
{
public List<string> Metrics { get; set; }
}
var json = "{"metrics":[]}";
var obj = JsonConvert.DeserializeObject<Data>(json);
obj.Metrics
将是一个空集合,而不是 null。
另外,即使是这样,您也可以像访问它一样访问它
var metrics = obj.Metrics ?? new List<string>();