使用JSON序列化程序将对象数组序列化为一个对象,并为C#中的每个对象指定一个命名属性
我有一个列表,当序列化为JSON时,它会给我一个对象数组。但是,我需要序列化版本的结构如下:使用JSON序列化程序将对象数组序列化为一个对象,并为C#中的每个对象指定一个命名属性,c#,arrays,json,serialization,object,C#,Arrays,Json,Serialization,Object,我有一个列表,当序列化为JSON时,它会给我一个对象数组。但是,我需要序列化版本的结构如下: { "item3":{ "id":3, "name":"monkey" }, "item4":{ "id":4, "name":"turtle" } } 目前,JSON序列化的结构如下: [ { "id":3, "name":"monkey" }, { "id":4, "name":"turtle" } ]
{
"item3":{
"id":3,
"name":"monkey"
},
"item4":{
"id":4,
"name":"turtle"
}
}
目前,JSON序列化的结构如下:
[
{
"id":3,
"name":"monkey"
},
{
"id":4,
"name":"turtle"
}
]
我的目标是能够通过项ID而不是数字索引来引用数组(即:arr[“item3”].name而不是arr[0].name)。您可能已经做到了,只需将数据放入字典就足以满足JaveScriptySerializer:
var dict = list.ToDictionary(
item => "item" + item.id);
(并序列化dict)
如果没有:
例如,我手头没有个人电脑,但您应该能够:
- 编写封装列表/数组的包装器类
- 使用JavaScriptSerializer类
- 创建序列化程序后,将包装器类型与自定义序列化程序关联
- 在自定义序列化程序中,迭代数据,为每个项向字典添加一个键,即data.Add(“item”+i,list[i])李>
如果你被卡住了,我稍后会尝试举个例子。我认为这会很好。谢谢你的及时回复:)好的,谢谢你。。。在进入注册转换业务之前,我会试一试。谢谢,马克