使用.NET将数组序列化为JSON对象

时间:2011-08-17 16:44:29

标签: c# .net json serialization

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

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

我的目标是返回以下JSON:

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

3 个答案:

答案 0 :(得分:3)

如果不是序列化数组,而是构建临时字典并对其进行序列化,那么您可以实现 simliar (与您期望的完全不同)

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

您可以向JSON序列化程序添加一条规则,以避免在YourClass中序列化“代码”属性,并且您最终会得到一个JSON对象完全,就像您在示例

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

.Net网站并没有按照你想要的方式特别序列化字典,但我相信其他一些字典。但是,我认为有理由不按照你要求的方式想要一般的序列化例程 - 虽然我不能肯定地列出它们。