【问题标题】:Serialize an array into JSON objects using .NET使用 .NET 将数组序列化为 JSON 对象
【发布时间】:2011-08-17 16:44:28
【问题描述】:

数组的序列化返回如下JSON:

[{"Code":"AAAA","Description":"Description of AAAA"},{"Code":"BBBB","Description":"Description of BBBB"}]

我的目标是返回以下 JSON:

{"AAAA":{"Description":"Description of AAAA"},"BBBB":{"Description":"Description of BBBB"}}

【问题讨论】:

    标签: c# .net json serialization


    【解决方案1】:

    如果不是序列化数组,而是构建一个临时字典并序列化它,您可以实现类似(与您期望的不完全相同)。

    var dict = new Dictionary<String, YourClass>();
    foreach (YourClass yourObj in listOfObjs)
    {
        dict[yourObj.Code] = yourObj;
    }
    // then serialize "dict"
    

    您可以向您的 JSON 序列化程序添加一条规则,以使其避免序列化 YourClass 中的“代码”属性,您最终将得到一个 JSON 对象完全,如您在示例中所示。

    【讨论】:

    • 或者只是制作一个代表序列化目标的对象(不理会原始应用对象)。
    【解决方案2】:

    您需要使用具有“AAAA”和“BBBB”属性的类,或者需要序列化字典。实际上,您正在序列化一个数组并获取一个数组。

    【讨论】:

      【解决方案3】:

      this blog post 上的表格显示了几个搜索起点。

      .Net 内置 System.Web.Script.Serialization.JavaScriptSerializer,here, with examples

      .Net 不会按照您想要的方式专门序列化 Dictionary,但我相信其他一些会这样做。但是,我认为有理由不想要您要求的通用序列化例程 - 尽管我不能肯定地列出它们。

      【讨论】:

        猜你喜欢
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 2013-07-25
        • 1970-01-01
        • 1970-01-01
        • 2014-03-05
        • 1970-01-01
        • 2012-03-07
        相关资源
        最近更新 更多