使用 Newtonsoft.Json 序列化 Dictionary<> 序列化结果不是数组格式......

猴头 2016-11-19 01:40:30
本来 Dictionary<> 里面有 20 项,序列化出来后,结果是一个json 对象,是这样的格式:

{"0":"0","1":"1","2":"2","3":"3","4":"4"}


Dictionary 中额每一条记录,作为了 json 对象的 一个属性......

这么序列化成数组格式呢???

...全文
2285 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2016-11-21
  • 打赏
  • 举报
回复
看错了。是序列化成数组啊。 这样貌似没办法。毕竟你的json不是数组形式,而且列名也不一样
正怒月神 版主 2016-11-21
  • 打赏
  • 举报
回复
string json = "{ \"0\":\"0\",\"1\":\"1\",\"2\":\"2\",\"3\":\"3\",\"4\":\"4\"}";
            var q = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
猴头 2016-11-21
  • 打赏
  • 举报
回复
引用 10 楼 qwertywhb 的回复:
dictionary 转成一个List<Class>再序列化
嗯现在是这么做的,但是 查不到资料,为什么 直接 序列化 出来额不是 数组格式......
混QWER 2016-11-21
  • 打赏
  • 举报
回复
dictionary 转成一个List<Class>再序列化
猴头 2016-11-20
  • 打赏
  • 举报
回复
引用 7 楼 zxl19890412qq 的回复:
因为你写的就不是数组啊,当然不会序列化出数组来!你把一个LIST 放进去你看看,不是数组出来我吃了他
我吧 Dictionary。ToList()之后 在序列化 这个list,出来的是数组格式的了.....Dictionary序列化之后输出的只是一个对象格式.....不是一个数组 包含若干个对象
YeomanAmj 2016-11-20
  • 打赏
  • 举报
回复
[{"key":"value"},{"key":"value"},{"key":"value"},{"key":"value"}] 这种格式的才可以转为Dictionary
zxl19890412qq 2016-11-19
  • 打赏
  • 举报
回复
因为你写的就不是数组啊,当然不会序列化出数组来!你把一个LIST 放进去你看看,不是数组出来我吃了他
猴头 2016-11-19
  • 打赏
  • 举报
回复
引用 5 楼 stherix 的回复:
[quote=引用 4 楼 yan_hyz 的回复:] [quote=引用 3 楼 stherix 的回复:] 你这个json格式就不是数组啊,只是一个对象 所以是没法反序列化成数组的 先反序列化成Dictionary再ToArray吧
本意是把一个 有20条数据的 Dictionary<string,string> 序列化为 json 字符串的,用的 Newtonsoft.Json.JsonConvert.SerializeObject(object value) 直接 传递的 Dictionary<string,string>,但是序列化出来的json 字符串 就是一个对象的格式,不带 那种 [] 的,并且每个 key 做为 了属性名,value 作为了 对应的属性值...... [/quote] 那就是先把Dictionary ToArray再序列化成json了 这样生成一个数组,里面每个对象都是KeyValuePair,有Key和Value[/quote] 嗯,我 ToList() 了
stherix 2016-11-19
  • 打赏
  • 举报
回复
引用 4 楼 yan_hyz 的回复:
[quote=引用 3 楼 stherix 的回复:] 你这个json格式就不是数组啊,只是一个对象 所以是没法反序列化成数组的 先反序列化成Dictionary再ToArray吧
本意是把一个 有20条数据的 Dictionary<string,string> 序列化为 json 字符串的,用的 Newtonsoft.Json.JsonConvert.SerializeObject(object value) 直接 传递的 Dictionary<string,string>,但是序列化出来的json 字符串 就是一个对象的格式,不带 那种 [] 的,并且每个 key 做为 了属性名,value 作为了 对应的属性值...... [/quote] 那就是先把Dictionary ToArray再序列化成json了 这样生成一个数组,里面每个对象都是KeyValuePair,有Key和Value
猴头 2016-11-19
  • 打赏
  • 举报
回复
引用 3 楼 stherix 的回复:
你这个json格式就不是数组啊,只是一个对象 所以是没法反序列化成数组的 先反序列化成Dictionary再ToArray吧
本意是把一个 有20条数据的 Dictionary<string,string> 序列化为 json 字符串的,用的 Newtonsoft.Json.JsonConvert.SerializeObject(object value) 直接 传递的 Dictionary<string,string>,但是序列化出来的json 字符串 就是一个对象的格式,不带 那种 [] 的,并且每个 key 做为 了属性名,value 作为了 对应的属性值......
stherix 2016-11-19
  • 打赏
  • 举报
回复
你这个json格式就不是数组啊,只是一个对象 所以是没法反序列化成数组的 先反序列化成Dictionary再ToArray吧
  • 打赏
  • 举报
回复
我就过来看看,坐等大神解答
猴头 2016-11-19
  • 打赏
  • 举报
回复
{"0":"0","1":"1","2":"2","3":"3","4":"4"} 分别是 key:value,key:value,key:value 的 形式出现的。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧