2010-09-14 53 views
3

在C#/ .NET中反序列化JSON数组时,是否始终保留元素的顺序?JSON数组反序列化 - 是否总是保存元素的顺序?

编辑:目前正在使用的库是.NET 3.5的System.Runtime.Serialization.Json.DataContractJsonSerializer

+0

你的意思是在JSON格式的数组? – 2010-09-14 21:45:46

+5

当你说数组时,你的意思是一个真实的数组(“[”foo“,”bar“,”baz“]')还是一个对象('{”foo“:1,”baz“:2}') ?任何理智的实现都会保持数组的顺序。我不希望保存对象中键值条目的顺序(并且它应该不重要,因为[RFC](http://www.ietf.org/rfc/rfc4627.txt)表示对象是“无序收集”),但一些图书馆会。 – 2010-09-14 21:46:09

+1

@Matt:前者是一个数组,后者是一个对象。我怀疑你只有保留其订单的前者是正确的。 – 2010-09-14 21:48:53

回答

3

是的。

的JSON规范不指定顺序保存数组,因为它们是一个有序收藏价值的:JSON.org

0

我会说这取决于你执行的任务选择的库。我的图书馆文档没有对此事做任何说明,我会假设它是实现细节,不能被信任(可以在下一版本中更改)。

相关问题