【问题标题】:Custom JsonSerialization自定义 Json 序列化
【发布时间】:2011-02-25 08:03:40
【问题描述】:

我在 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 类,这样我就不需要其中的索引引用了?

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 最初我使用字典,但现在它变得很痛苦,因为我需要不断合并字典,而这本身似乎是一个问题。用列表来做这件事要容易得多,但我现在遇到了序列化的问题。
    • 其实 response.ToDictionary() 方法正是我所需要的。我只是没有完全理解你的意思。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    相关资源
    最近更新 更多