我一直無法解決這個問題,所以我想我會問這裏。我使用的是Ruby 1.8.7和RoR 1.2.6。我有我的控制器呈現此JSON:Ruby 1.8.7使用JSON排序哈希.parse
{
"form_id": "1",
"form_structure": {
"3": {
"answer_required": "undefined",
"title": "This is a radio group, right?",
"cssClass": "radio",
"values": {
"4": {
"value": "Yes",
"baseline": "undefined"
},
"5": {
"value": "No",
"baseline": "undefined"
},
"7": {
"value": "Maybe",
"baseline": "undefined"
},
"20": {
"value": "Test",
"baseline": "undefined"
}
}
}
}
}
正如您所看到的,「值」下的選項由表中的ID排序。在JSON中看起來很完美。當我使用JSON.parse
就可以了,一切都「值」下獲得的所有走出低谷,並將其返回此:
{
"form_id"=>"1",
"form_structure"=>{
"3"=>{
"title"=>"This is a radio group, right?",
"cssClass"=>"radio",
"answer_required"=>"undefined",
"values"=>{
"7"=>{
"baseline"=>"undefined",
"value"=>"Maybe"
},
"20"=>{
"baseline"=>"undefined",
"value"=>"Test"
},
"4"=>{
"baseline"=>"undefined",
"value"=>"Yes"
},
"5"=>{
"baseline"=>"undefined",
"value"=>"No"
}
}
}
}
}
此代碼是在我做一個formbuilder使用,它不會真的是不錯如果一個人構建的表單元素沒有按照他們構建的正確順序顯示出來,任何人都可以獲得有關我如何保持排序或重新排序的信息,或者在之前輸出它們?
有沒有Ruby的版本1.8.9 ... – 2012-04-18 15:55:26
'Hash'沒有在1.8.7中訂購,你可以改變你的'JSON',使它看起來像'{「values」=> [[7,{「baseline」=> ...}],[20,...'?無論如何,這將是一件好事,訂購哈希是一件棘手的事情。 – 2012-04-18 16:02:44
哈希按定義沒有順序。處理它並將其更改爲數組。 – 2012-04-18 16:07:46