2017-07-07 113 views
2

我通过Ajax获得以下结果和数据资料,我在阿贾克斯成功得到的是如何创建JSON格式的highcharts

[{ 
    "plants_ref_id": "1", 
    "plant_name": "MCW", 
    "employees_data": "6,6,80,70,60,30,2,3,12,12,37.00,60.00,64666.666667,8000.0000" 
},{ 
    "plants_ref_id": "3", 
    "plant_name": "SJCPL", 
    "employees_data": "4,5,6,7,7,7,6,4,4,5,20.00,3.00,176923.076923,38461.5385" 
}] 

我想这个数据转换成格式化

[{ 
    name: 'MCW', 
    data: [6,6,80,70,60,30,2,3,12,12,37.00,60.00,64666.666667,8000.0000 
]},{ 
    name: 'SJCPL', 
    data: [4,5,6,7,7,7,6,4,4,5,20.00,3.00,176923.076923,38461.5385] 
}] 

我想转换为这种格式生成highcharts为https://jsfiddle.net/mcj075jf/

如何使用循环或转换为jQuery的上述格式0。请帮忙。

回答

0

在这里,您与解决方案https://jsfiddle.net/z10jheo2/

var data = [{ 
    "plants_ref_id": "1", 
    "plant_name": "MCW", 
    "employees_data": "6,6,80,70,60,30,2,3,12,12,37.00,60.00,64666.666667,8000.0000" 
},{ 
    "plants_ref_id": "3", 
    "plant_name": "SJCPL", 
    "employees_data": "4,5,6,7,7,7,6,4,4,5,20.00,3.00,176923.076923,38461.5385" 
}]; 

var newData = []; 

for(var i=0; i<data.length; i++) { 
    var tempData = {}; 
    tempData.name = data[i].plant_name; 
    tempData.data = data[i].employees_data.split(','); 
    newData.push(tempData); 
    console.log(newData); 
} 
+0

如果我将相同的数据传递给highcharts图表不显示。请在这里查看https://jsfiddle.net/z10jheo2/1/ –

+1

在这里,您可以使用解决方案https://jsfiddle.net/17rf4ugt/。由于我是以逗号为基础分割数据的,因此我们需要恢复浮动才能填充图表。 – Shiladitya

1

您可以使用map如下:

var plants = [{ 
 
    "plants_ref_id": "1", 
 
    "plant_name": "MCW", 
 
    "employees_data": "6,6,80,70,60,30,2,3,12,12,37.00,60.00,64666.666667,8000.0000" 
 
},{ 
 
    "plants_ref_id": "3", 
 
    "plant_name": "SJCPL", 
 
    "employees_data": "4,5,6,7,7,7,6,4,4,5,20.00,3.00,176923.076923,38461.5385" 
 
}]; 
 

 
var formattedData = plants.map((plant) => ({ 
 
    name: plant.plant_name, 
 
    data: plant.employees_data.split(',').map((data) => parseFloat(data)) 
 
})); 
 

 
console.log(formattedData);

+0

去如果我通过相同的数据highcharts图表没有显示。请在这里检查https://jsfiddle.net/mcj075jf/1/ –

+0

@rjirji我想我们需要将字符串数组转换为数字。检查我编辑的答案:) –

+0

我改变了你的jsfiddle使用修改后的编辑答案,它现在工作!https://jsfiddle.net/17rf4ugt/ –