我有一个结果响应对象,需要将其反序列化并转换为JSON对象,如下所示:
var responseBody = await response.Content.ReadAsStringAsync();
var deviceSeqNrResponse = JsonConvert.DeserializeObject(responseBody);
deviceSeqNrResponse
看起来像
{
"dataMod": 1,
"deviceId": "myDeviceID",
"seqNum": [
{
"ApplicationType": null,
"exampleId": 8
}
]
}
我尝试测试这个逻辑,看看"seqNum": []
中是否有嵌套在result对象中的属性,我尝试了.Contains
和其他方法,但没有成功。
我正在使用.NET 6。
我想达到的目标是:
Assert"seqNum": []
中不存在空值等于true的属性。
2条答案
按热度按时间pkwftd7m1#
1.通过
.SelectToken()
选择元素"序列号"。1.从 * 1 * 中获取所有值(返回嵌套数组)。通过
.SelectMany()
展开嵌套数组。1.与
.Any()
一起使用Type == JTokenType.Null
从结果 * 2 * 中查找任意元素。1.对 * 3 * 的结果求反,以指示不存在具有以下值的元素:
null
.1.从
SequenceNumber
类获取所有公共属性。1.使用
.All()
来评估SequenceNumbers
列表中的所有对象不包含任何具有值的属性:null
.Demo @ .NET Fiddle
yrefmtwq2#
检查以下示例: