javascript/jquery以相同顺序解析json
我有以下json对象javascript/jquery以相同顺序解析json,javascript,jquery,json,Javascript,Jquery,Json,我有以下json对象 var json1 = {"00" : "00", "15" : "15", "30" : "30", "45" : "45"}; 我正在准备一个select元素来解析上面的json,如下所示 var selElem = $('<select>', {'name' : name, 'grp' : grp}); for(key in json1) selElem.append($('<option>', {value:key, text: j
var json1 = {"00" : "00", "15" : "15", "30" : "30", "45" : "45"};
我正在准备一个select元素来解析上面的json,如下所示
var selElem = $('<select>', {'name' : name, 'grp' : grp});
for(key in json1)
selElem.append($('<option>', {value:key, text: json1 [key]}));
<select>
<option value="15">15</option>
<option value="30">30</option>
<option value="45">45</option>
<option value="00">00</option>
</select>
var sellem=$(“”,{'name':name,'grp':grp});
for(输入json1)
append($('',{value:key,text:json1[key]}));
但是创建的select元素如下所示
var selElem = $('<select>', {'name' : name, 'grp' : grp});
for(key in json1)
selElem.append($('<option>', {value:key, text: json1 [key]}));
<select>
<option value="15">15</option>
<option value="30">30</option>
<option value="45">45</option>
<option value="00">00</option>
</select>
15
30
45
00
这里的问题是json1对象包含00作为第一个元素,但在select元素中它是最后创建的
此问题的任何解决方法或解决方案。如果要保留顺序,请使用数组:
var json1 = [{val:"00",txt:"00"},
{val:"15",txt:"15"},
{val:"30",txt:"30"},
{val:"45",txt:"45"}];
然后循环它:
var selElem = $('<select>', {'name' : name, 'grp' : grp});
for(var i=0;i<json1.length;(i+=1)){
selElem.append($('<option>', {value:json1[i].val, text: json1[i].txt}));
}
var sellem=$(“”,{'name':name,'grp':grp});
对于(var i=0;iworkaround yes,solution,no,JSON不保证顺序表示对象是一组无序的名称/值对。
您的解决方案很好…但是json1[i].val
和json1[i].txt
返回的是未定义的…您可能没有更新json源代码,从根本上说,这就是问题所在…对象属性enemeration不是NEC,因为属性是第一个defined@Sandeep:在我的答案中添加了一个JSFIDLE链接