2012-07-07 96 views
0

我很新的序列化,我有問題。我使用javascript和JSON來序列化由浮點數,字符串以及浮點數或字符串數​​組組成的鍵列。我有一條規則。爲了比較,數組比字符串大,字符串比浮點數大。字符串按字母順序進行比較,浮動數字進行比較。 因此,在序列化之前,我對鍵列進行排序,但是當JSON序列化鍵列時,順序已經消失。JSON不保存順序

例如,如果我用下面的鍵列開始:

11, 
2, 
"1" 

排序我會後:

"1", 
2, 
11 

但序列化後,我會得到:

"11", 
"2" , 
""1"" 

有誰知道我可以如何保存訂單?有沒有其他的序列化方法可以保存這個命令?任何建議都非常感謝。非常感謝。

+0

您是否將這些值放入某種散列?我是JS的數組當然會保持順序。多一點代碼會有所幫助。 – jjathman 2012-07-07 04:43:27

+0

我把結果放在一個sql數據庫中。然後我使用ORDER BY鍵來訂購它,但它沒有正確排序。因爲在序列化之後,我只有字符串,所以順序依賴於字符串屬性,而不依賴於那些對象以前的東西。將使用某種類型的哈希表有所幫助? – BBB 2012-07-07 04:49:45

+0

這是因爲它事實上都是以文本形式排序的...... – canon 2012-07-07 04:52:12

回答

6

如果我記得沒錯,JSON可能會重新排列按鍵順序。不同的瀏覽器將不同地安排對象鍵。只有通過使用數組或[]才能保持順序。