我有以下JSON字符串:
[{
"Date": "1",
"Time": "2007-10-01",
"Tag": "test",
"JetSpeed": "note",
"HeadTemp": "200.00",
"FaultList": "10.00;"
}, {
"Date": "2",
"Time": "2007-10-02",
"Tag": "test2",
"JetSpeed": "note2",
"HeadTemp": "300.00",
"FaultList": "20.00;"
}, {
"Date": "3",
"Time": "2007-09-01",
"Tag": "test3",
"JetSpeed": "note3",
"HeadTemp": "400.00",
"FaultList": "30.00;"
}]
我正在尝试使用此代码来获取JSON数据,因此我可以使用它:
var logtabledata = $.parseJSON(data.Parameters);
// When I use this gives me array objects
例如,如果您访问logtabledata[0]
,则第一个键为Date
,值为1.下一个键为FaultList
值为10.00,但我需要下一个取而代之的是Time
。
它按排序顺序排列数据,但我需要保留密钥的原始顺序。这是可能的,如果是的话,怎么样?
答案 0 :(得分:5)
如果要保留顺序,则需要使用数组,而不是对象:
对象是Object类型的成员。 这是无序的 属性集合,每个属性包含一个原始值, 对象或功能。
或者,您也可以为订单目的创建一个键数组:
例如:
var order = ['Date', 'Time', 'Tag', 'JetSpeed', 'HeadTemp', 'FaultList'];
logtabledata.forEach(function (item) {
order.forEach(function (key) {
console.log(item[key]);
});
});
答案 1 :(得分:1)
如 CD .. 所述,对象是无序的属性集合。
您至少有两个选择:
您可以使用数组而不是对象
您可以使用其名称轻松遍历数组并以所选顺序打印/使用对象中的属性。
var a = $.parseJSON(data.Parameters);
for (var i = 0, ilen = a.length; i < ilen; i += 1) {
console.log(a[i].Date);
console.log(a[i].FaultList);
// etc
}