現在、私は、必要なオブジェクトのリストを生成する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; }
}
私の最終目標は、最初の3つのパラメータ(Param1を、PARAM2、およびParam3)を含有している、CContainerオブジェクトのリストを作成することです'結果'カテゴリの各項目についてまた、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