目前,我正面臨一個問題,即創建一個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