【发布时间】:2021-12-16 02:49:38
【问题描述】:
尝试通过使用具有特定值的属性之一作为“指针”来选择数组中的对象。我的目标是用 linq 做到这一点
例子:
{
"A": "ValA",
"B": "ValB",
"C": [
{
"D": "ValD1",
"E": "ValE1",
"F": "ValF1"
},
{
"D": "ValD2",
"E": "ValE2",
"F": "ValF2"
},
{
"D": "ValD2",
"E": "ValE3",
"F": "ValF3"
}
]
}
所以我想要做的是获取对象 n 数组“C”,其中包含属性“D”和值“ValD2”。由于有两个对象,我想让 LINQ 查询返回一个包含两个对象的列表。如果有一个对象包含属性“D”和值“ValD2”。可以这么说,我只会取回一个包含这些参数的对象。
即:
[
{
"D": "ValD2",
"E": "ValE2",
"F": "ValF2"
},
{
"D": "ValD2",
"E": "ValE3",
"F": "ValF3"
}
]
到目前为止,我已经通过这样做获得了数组 C 中的所有对象:
json.DescendantsAndSelf().OfType<JObject>().Where(x => x.ContainsKey("C")).ToList()
【问题讨论】:
-
您可以在 JSON 数据周围使用类包装器并反序列化结果,还是必须操作纯 JSON?
-
@Volodymyr 遗憾的是,我必须操作普通的 json。 :(