2010-05-28 12 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