在C#/ .NET中反序列化JSON數組時,是否始終保留元素的順序?JSON數組反序列化 - 是否總是保存元素的順序?
編輯:目前正在使用的庫是.NET 3.5的System.Runtime.Serialization.Json.DataContractJsonSerializer
在C#/ .NET中反序列化JSON數組時,是否始終保留元素的順序?JSON數組反序列化 - 是否總是保存元素的順序?
編輯:目前正在使用的庫是.NET 3.5的System.Runtime.Serialization.Json.DataContractJsonSerializer
是的。
的JSON規範不指定順序保存數組,因爲它們是一個有序收藏價值的:JSON.org
我會說這取決於你執行的任務選擇的庫。我的圖書館文檔沒有對此事做任何說明,我會假設它是實現細節,不能被信任(可以在下一版本中更改)。
你的意思是在JSON格式的數組? – 2010-09-14 21:45:46
當你說數組時,你的意思是一個真實的數組(「[」foo「,」bar「,」baz「]')還是一個對象('{」foo「:1,」baz「:2}') ?任何理智的實現都會保持數組的順序。我不希望保存對象中鍵值條目的順序(並且它應該不重要,因爲[RFC](http://www.ietf.org/rfc/rfc4627.txt)表示對象是「無序收集」),但一些圖書館會。 – 2010-09-14 21:46:09
@Matt:前者是一個數組,後者是一個對象。我懷疑你只有保留其訂單的前者是正確的。 – 2010-09-14 21:48:53