自定义JsonSerialization

时间:2010-05-28 21:32:20

标签: asp.net asp.net-mvc json asp.net-ajax asp.net-mvc-2

我在asp.net mvc中有一个简单的类,如下所示:

 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类,所以我不需要那里的索引引用?

谢谢!

1 个答案:

答案 0 :(得分:2)

Dictionary<string, string>将序列化为您要求的Json。如果您不想直接公开字典,请将其包装在另一个类中或使用Json(response.ToDictionary(item => item.Key)