私はこのモデルを持っています
public class DTO
{
public int Id {get;set;}
public string Name { get; set; }
public string LastName { get; set; }
public Dictionary<string, string> Items { get; set; }
}
ディクショナリの値はデータベースから取得されているため、オブジェクトごとに異なります。とにかく、サードパーティのグリッドが理解できるように、Json を特定の形式で返す必要があります。サンプルコード
public ActionResult Index()
{
DTO dto = new DTO()
{
Id = 1 ,
Name = "Employee1",
LastName = "last name value",
Items = new Dictionary<string, string>()
};
// properties .....
dto.Items.Add("Variable 1" , "Value 1 Goes here");
dto.Items.Add("Variable 2", "Value 2 Goes here");
dto.Items.Add("Variable 3", "Value 3 Goes here");
return Json(dto, JsonRequestBehavior.AllowGet);
}
目的のJsonは次のようになります
{"Id":1, "Name":"Employee1","LastName":"Last Name Value","Variable 1":"Value 1 Goes here","Variable 2":"Value 2 Goes here","Variable 3":"Value 3 Goes here"}
ディクショナリ表現は配列、つまり行を列に変換してはならないことに注意してください。JsonWriter とコンバーターを使用して多くのことを試しましたが、この結果を達成できませんでした。