【发布时间】:2021-06-01 16:08:33
【问题描述】:
我有一个 API 以以下格式给出响应:
[
{
"OrderId" : "Order1"
"filterOrder": [
"ABC",
"XYZ"
],
"Details": [
{
"id": 1
"value": 100,
"filterDetails": [
"Apples",
"Oranges"
]
},
{
"id": 2
"value": 200,
"filterDetails": [
"Banana",
"Blank"
]
}
]
},
{
"OrderId" : "Order2"
"filterOrder": [
"PQR",
"Blank"
],
"Details": [
{
"id": 1
"value": 100,
"filterDetails": [
"Apples",
"Peaches"
]
},
{
"id": 2
"value": 200,
"filterDetails": [
"Banana",
"Mango"
]
},
]
}
]
我收到响应并将其反序列化为模型类(与上述相同的结构)。
我的要求是从过滤器被称为“空白”的响应中删除所有这些对象。
在上面的例子中,输出应该是这样的:
[
{
"OrderId" : "Order1"
"filterOrder": [
"ABC",
"XYZ"
],
"Details": [
{
"id": 1
"value": 100,
"filterDetails": [
"Apples",
"Oranges"
]
}
]
}
]
我在网上搜索后尝试了几个例子,但无法继续。
var item = responseObject.Find(x=>x.filterOrder == "Blank");
responseObject.Remove(item);
但这会产生编译错误。任何人都可以帮助我根据要求过滤数据。非常感谢。
【问题讨论】:
-
FilterOrder 是一个数组,但您正在将它与字符串进行比较......这是行不通的。如果要检查数组是否包含您要查找的项目,请使用 contains
标签: c# json linq asp.net-core