我一直无法解决这个问题,所以我想我会问这里。我使用的是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