使用 JSON 序列化程序将对象数组序列化为一个对象,并为 C# 中的每个对象指定一个命名属性
我有一个列表,当序列化为 JSON 时,它会给我一个对象数组。但是,我需要序列化版本的结构如下:
{
"item3":{
"id":3,
"name":"monkey"
},
"item4":{
"id":4,
"name":"turtle"
}
}
目前,JSON 序列化的结构如下:
[
{
"id":3,
"name":"monkey"
},
{
"id":4,
"name":"turtle"
}
]
我的目标是能够通过项目 ID 而不是数字索引(即 arr["item3"].名称而不是 arr[0].name)。
I have a List that, when serialized as JSON gives me an array of objects. However, I need the serialized version to be structured as follows:
{
"item3":{
"id":3,
"name":"monkey"
},
"item4":{
"id":4,
"name":"turtle"
}
}
Currently, the JSON serialization is structured like this:
[
{
"id":3,
"name":"monkey"
},
{
"id":4,
"name":"turtle"
}
]
My goal is to be able to reference the array by item ID instead of numeric index (ie. arr["item3"].name instead of arr[0].name).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能会这样做,只需将数据放入字典中就足够了 JaveScripySerializer:(
并序列化字典)
如果没有:
我没有方便的 PC 作为示例,但您应该能够:
您可以通过 RegisterConverters 关联自定义映射: http: //msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.registerconverters.aspx
请注意,除非您也需要,否则不需要编写反序列化。
如果您遇到困难,我稍后会尝试举一个例子。
You might did that just putting the data into a dictionary is enough for JaveScripySerializer:
(and serialize dict)
If not:
I don't have a PC handy for an example, but you should be able to:
You associate custom maps via RegisterConverters: http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.registerconverters.aspx
Note you don't need to write a deserialize unless you need that too.
If you get stuck, I'll try to ad an example later.