2014-01-18 116 views
1

我正在解析我的字符串值爲json對象。 這樣做時,它會以不同的順序返回json對象。JSON.parse()返回字母順序

var l = '{"creationType":"ITEMCLASSES","maxLevelNo":"4","selectbox1":"11001","textbox11":"KRAFT PAPER","hidden11":"11001","textbox12":"FG2","hidden12":"11051","textbox13":"HMC2","hidden13":"11045","textbox14":"2","textbox15":"LS2","hidden15":"11048","textbox16":"123","hidden16":"11015","selectbox2":"11002","textbox21":"kraft ","hidden21":"11057","selectbox3":"11003","textbox31":"40 BF","hidden31":"11004","textbox32":"Natural Color","hidden32":"11006","textbox33":"2","textbox41":"140 GSM","hidden41":"11008"}';  
var o = JSON.parse(l); 
alert(0); 

生成的對象是根據名稱排序的。 如何避免這種情況? 請給出您的建議。

+0

[元素順序在「for(... in ...)」循環]中的可能重複(http://stackoverflow.com/questions/280713/elements-order-in-a-for-in-loop) –

+0

Object訂單不保證。副本中有更多信息。 –

回答

0

您的變量「1」已經是JSON對象。這意味着將它提供給JSON.parse函數是多餘的和不現實的。 JSON.parse();函數主要用於將字符串轉換爲JSON對象。

var l = {"creationType":"ITEMCLASSES","maxLevelNo":"4","selectbox1":"11001","textbox11":"KRAFT PAPER","hidden11":"11001","textbox12":"FG2","hidden12":"11051","textbox13":"HMC2","hidden13":"11045","textbox14":"2","textbox15":"LS2","hidden15":"11048","textbox16":"123","hidden16":"11015","selectbox2":"11002","textbox21":"kraft ","hidden21":"11057","selectbox3":"11003","textbox31":"40 BF","hidden31":"11004","textbox32":"Natural Color","hidden32":"11006","textbox33":"2","textbox41":"140 GSM","hidden41":"11008"}; 
alert(1); 

只需跳過第二行並直接操作「1」變量即可。

+0

其實var l包含字符串值,以便我從外部解析到json對象。 –

+0

肯定 - 在這種情況下,如果你想保持正確的順序,我會推薦使用XML或數組。 – VCNinc

0

你不能。

www.json.org

描述在JSON,它們採取這些形式:

一個目的是無序集合的名稱/值對

,如果你想使用的陣列維持秩序。