2016-03-28 58 views
-2

我通过AJAX调用以JSON格式从PHP文件中获取响应。使用jQuery从JSON响应中创建一个对象

console.log(data["json"]); 

[{"value":"23","label":"Assorted Juices"},{"value":"24","label":"Water"},{"value":"25","label":"Beers"},{"value":"26","label":"Carbonated Drinks"},{"value":"27","label":"Instant Beverages "},{"value":"28","label":"Energy Drinks"}] 

我能够遍历JSON

var subCategory = data["json"]; 
//console.log(subCategory); 
var obj = $.parseJSON(subCategory); 
$.each(obj, function() { 
$label = this['label']; 
$value = this['value']; 
}); 

我在javascript需要构建对象像下面。我如何调整上述循环来生成这样的对象。

var data = [ 
    { label: 'Water', value: '24' }, 
    { label: 'Energy Drinks', value: '28' }, 
] 
+1

你可以修改PHP代码吗?您的数据已经以您需要的格式存在,您只需要将'id'键改为'value',将'name'改为'label'。 –

+0

id和name是数据库字段,请参阅上面的php代码。 – brainHax

+0

和...为什么你不能重命名选择内的字段? –

回答

0

创建一个对象并将其推送到数组可以完成这项工作。

var subCategory = data["json"]; 
//console.log(subCategory); 
var obj = $.parseJSON(subCategory); 
var data3 = []; 
var counter = 0; 
$.each(obj, function() { 

$label = this['label']; 
$value = this['value']; 
var obj2 = { 
     label: $label, 
     value: $value 
    }; 
    data3.push(obj2); 
});