目前,我正面临一个问题,即创建一个LINQ语句,它将生成我想要的对象列表。以下部分是我想要处理的LINQ对象的一个示例。使用LINQ从Json对象生成自定义对象的列表
{
"successful": "true",
"result": [
[
{
"Param1": "A1",
"Param2": "A2",
"Param3": "A3",
"Param4": "A4",
"Param5": "1",
"Param6": "A5",
},
{
"Param1": "B1",
"Param2": "B2",
"Param3": "B3",
"Param4": "B4",
"Param5": "2",
"Param6": "B5",
},
{
"Param1": "C1",
"Param2": "C2",
"Param3": "C3",
"Param4": "C4",
"Param5": "2",
"Param6": "C5",
}
]
]
}
我有一个自定义对象类跟随,
public class CContainer
{
public string param1{ get; set; }
public string param2{ get; set; }
public string param3{ get; set; }
}
我的最终目标是创建CContainer对象的列表,只包含前3个参数(参数1,参数2和参数3)对于“结果”类别下的每个项目。另外,我想只选择它的Param5 ==“2”。我目前无法使用LINQ做到这一点,请指教。
以下代码段不起作用(即使我删除'Where'子句)。
List<CContainer> testList = new List<CContainer>();
string responseRet = await response.Content.ReadAsStringAsync();
JObject o = JObject.Parse(responseRet);
testList =
(from item in o["result"]
where item["Param5"].Value<string>() == "2"
select new CCOntainer
{
param1 = item["Param1"].Value<string>(),
param2 = item["Param2"].Value<string>(),
param3 = item["Param3"].Value<string>(),
}).ToList();
为什么选择ar你不使用属性属性和JsonConvert.Deserialize()方法吗? – toadflakz
我不知道如何仅使用Deserialize方法提取特定条件下的Param1,Param2,Param3。 – Ytan
您是否知道您的'results'属性是一个包含单个元素的数组......该单个元素本身就是您的'CContainer'对象的数组?这是一个错误还是故意的? – Jamiec