ASP.NET サーバーでネストされた JSON オブジェクトを変換しようとしています。着信 JSON 文字列は次のようになります -
data: {
user_id: 1,
taskid: "1234",
list: {
"item-1": { one: 1, two: 2 },
"item-2": { one: 1, two: 2 }
//.. where number of items is unknown
}
}
JSON.Decode this wayを使用してデータをデコードしようとしました
public class Data {
public int user_id { get; set; }
public string taskid { get; set; }
public List<object> list { get; set; }
}
public class DataList {
List<Data> data { get; set; }
}
// if isPost etc..
var decodedData = JSON.Decode<DataList>(Request["data"])
しかし、decodedData を反復しようとすると、エラーが発生します -
'ASP._Page_that_cshtml.DataList' には 'GetEnumerator' のパブリック定義が含まれていないため、foreach ステートメントはタイプ 'ASP._Page_that_cshtml.DataList' の変数を操作できません。
この方法でdecodedDataをリストにキャストしようとすると-
List<Data> decodedData = JSON.Decode<DataList>(Request["data"])
別のエラーをスローします
CS0030: タイプ '
ASP._Page_that_cshtml.DataList
' を ' ' にSystem.Collections.Generic.List<ASP._Page_that_cshtml.DataList>
変換できません
ネストされた JSON オブジェクトを C# オブジェクトに変換し、それを反復処理する適切な方法を提案していただけますか?
PS: 末尾のセミコロンは意図的に省略されています