我正在尝试反序列化JSON响应,我想要一个检测数组是否为空的函数,如果它不为空,我希望它返回值。
JSON数组在空时看起来像这样:
{"metrics":[]}
当它不为空时,它可能看起来像下面的任何一个:
{"metrics":["flow"]}
{"metrics":["energy"]}
{"metrics":["flow","energy"]}
我怎样才能发现这个?
它不能与NullValueHandling一起使用,因为如果数组为空,则它不为空,它根本没有任何值。
我发现有关索引的错误。
我在我的课程中将数组作为List返回。
答案 0 :(得分:3)
假设您正在使用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>();