2010-05-28 14 views
0

我在asp.net mvc的一個簡單的類,看起來像這樣:定製JsonSerialization

public class JsonResponseItem 
{ 
    public string Key { get; set; } 
    public string Value { get; set; } 

    public JsonResponseItem(string key, string value) 
    { 
     Key = key; 
     Value = value; 
    } 
} 

在我的控制器,我創建該類型

List<JsonResponseItem> response = new List<JsonResponseItem>(); 

的列表,以便我可以輕鬆地管理和添加到Json響應中。字典對象很難做到這一點。

當我返回的JSON對象

return Json(response); 

它反序列化,所以我必須通過指數先引用,因爲表的一切。所以如果我有一個名爲「IsValid」的屬性,我必須像這樣引用它「IsValid [0]」。我有太多的JavaScript代碼來進行這些更改。

我該如何反序列化JsonResponseItem類,所以我不需要那裏的索引引用?

謝謝!

回答

2

A Dictionary<string, string>會序列化到您要求的Json中。如果您不想直接公開字典,請將其包裝在其他課程中或使用Json(response.ToDictionary(item => item.Key)

+0

最初我使用了一個字典,但現在它變成一種痛苦,因爲我需要不斷合併字典,而且這本身似乎是一個問題。用列表來做這件事更容易,但我現在有序列化的問題。 – chobo 2010-05-28 22:03:16

+0

其實response.ToDictionary()方法正是我所需要的。我只是不完全明白你的意思。 – chobo 2010-05-28 22:22:51