【发布时间】:2011-04-12 09:44:33
【问题描述】:
在 C#/.NET 中反序列化 JSON 数组时,是否始终保留元素的顺序?
编辑:当前使用的库是 .NET 3.5 的 System.Runtime.Serialization.Json.DataContractJsonSerializer
【问题讨论】:
-
你的意思是JSON格式的数组吗?
-
当你说数组时,你是指一个真正的数组(
["foo", "bar", "baz"]),还是一个对象({"foo": 1, "baz": 2})?任何理智的实现都将保留数组的顺序。我不希望保留对象中键值条目的顺序(这无关紧要,因为 RFC 说对象是“无序集合”),但有些库会。 -
@Matt:前者是数组,后者是对象。我怀疑你是正确的,只有前者保留了它的顺序。
-
@Steven,对。我正在检查,因为很多人错误地将 JavaScript 对象称为“关联数组”。
-
@Steven/Matt:是的,JSON 格式的数组(例如,["foo", "bar", "baz"]),而不是 JS/JSON 对象。我也相信订单应该/应该保留,但我无法找到具体的文档。
标签: c# .net arrays json serialization