我想JSON字符串轉換C#排序JSON字符串鍵
"{ \"birthday\": \"1988-03-18\", \"address\": { \"state\": 24, \"city\": 8341, \"country\": 1 } }"
到
"{ \"address\": { \"city\": 8341, \"country\": 1, \"state\": 24 }, \"birthday\": \"1988-03-18\" }"
注意:我不使用通訊排序版本(因爲鍵順序沒有按真的很重要),我需要一個排序版本來執行本地測試(通過比較JSON字符串)。
編輯: I4V指出使用Json.Net,我寧願使用不需要包含任何第三方庫(其實我使用的是內置的System.Json在溶液中而我應用程序)
我張貼與由I4V +一些測試here提供的溶液中的要點。謝謝你們。
嗯......雖然聽起來很誘人,但我敢肯定,更好的解決方案是對JSON進行更深入的檢查,而不是進行字符串比較。鑑於JS中屬性的枚舉不是由規範決定的,因此不應該依賴對象屬性的順序,因爲訂購json序列化的屬性確實沒有意義。 ECMA-262,第12.6.4節:枚舉屬性......的機制取決於實現。 – spender
@spender我同意你的意見,JSON鍵順序是沒有意義的,字符串比較不應該用於比較大型/複雜的JSON對象。但是JSON字符串分類器可能對非常特殊的情況有用(如我的) –