Javascript 将JSON数据解析为Chart.js条形图

Javascript 将JSON数据解析为Chart.js条形图,javascript,json,ajax,chart.js,Javascript,Json,Ajax,Chart.js,我正在尝试使用Chart.js使用Oracle DB中动态生成的数据生成条形图。我很难获得正确格式的数据,我想我很接近了,但我已经被困了一段时间 我的JSON文件: [{"REGION":"Poland","REV_VALUE":"2263"},{"REGION":"United States","REV_VALUE":"1961"},{"REGION":"Spain","REV_VALUE":"555"},{"REGION":"United Kingdom","REV_VALUE":"380"

我正在尝试使用Chart.js使用Oracle DB中动态生成的数据生成条形图。我很难获得正确格式的数据,我想我很接近了,但我已经被困了一段时间

我的JSON文件:

[{"REGION":"Poland","REV_VALUE":"2263"},{"REGION":"United States","REV_VALUE":"1961"},{"REGION":"Spain","REV_VALUE":"555"},{"REGION":"United Kingdom","REV_VALUE":"380"},{"REGION":"Germany","REV_VALUE":"314"}]
这是我的barchar.js文件:

[{"REGION":"Poland","REV_VALUE":"2263"},{"REGION":"United States","REV_VALUE":"1961"},{"REGION":"Spain","REV_VALUE":"555"},{"REGION":"United Kingdom","REV_VALUE":"380"},{"REGION":"Germany","REV_VALUE":"314"}]
$(文档).ready(函数(){
$.ajax({
url:“http://localhost/DWH/dataJSON.php",
方法:“获取”,
数据类型:“JSON”,
成功:功能(数据){
控制台日志(数据);
var区域=[];
var值=[];
用于(数据中的var i){
region.push(数据[i].region);
push(数据[i].REV_值);
}
var图表数据={
标签:区域,
数据集:[
{
标签:'区域',
背景颜色:“rgba(2002002000.75)”,
边框颜色:“rgba(2002002002000.75)”,
hoverBackgroundColor:'rgba(2002002002001)',
hoverBorderColor:'rgba(2002002002001)',
数据:value.map(函数(x){returnx*1;})
}
]
};
var ctx=$(“我的图表”);
var条形图=新图表(ctx{
类型:'bar',
数据:图表数据
});
},
错误:函数(数据){
控制台日志(数据);
}
});
});

我很快就做了这个,给你举个例子来帮助你,你的方向是正确的。我使用硬编码数据作为示例,然后在底部使用Ajax方法

这样解析数据,类似于使用
data.map()
所做的操作

然后为了使用数据,我只对数组内容使用了一个扩展运算符
[…]

labels: [...region],
data: [...rev_value],
示例1使用Canvas.js对数据进行硬编码的简单示例

var ctx=document.getElementById('myChart').getContext('2d');
让数据=[{
“区域”:“波兰”,
“修订值”:“2263”
}, {
“地区”:“美国”,
“修订价值”:“1961年”
}, {
“区域”:“西班牙”,
“修订值”:“555”
}, {
“区域”:“联合王国”,
“修订值”:“380”
}, {
“区域”:“德国”,
“修订值”:“314”
}];
让区域=[];
设rev_值=[];
试一试{
data.map((项目)=>{
版本值推送(项目版本值);
区域推送(item.region);
});
var myChart=新图表(ctx{
类型:'bar',
数据:{
标签:[……地区],
数据集:[{
标签:'区域',
数据:[……修订值],
背景颜色:[
"rgba(255,99,132,0.2)",,
“rgba(54162235,0.2)”,
"rgba(255,206,86,0.2)",,
“rgba(751921920.2)”,
“rgba(153102255,0.2)”,
‘rgba(255、159、64、0.2)’
],
边框颜色:[
"rgba(255,99,132,1)",,
“rgba(54162235,1)”,
"rgba(255,206,86,1)",,
"rgba(751921921)",,
"rgba(153102255,1)",,
‘rgba(255、159、64、1)’
],
边框宽度:1
}]
},
选项:{
比例:{
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的
}
}]
}
}
});
}捕获(错误){
console.log(错误);
}

您可以尝试以下方法:

    dataPoints: variable ? variable.map((v) => ({x: (v.region), y: v.value})) : []

感谢您提供了JSON数据片段,它使制定实际响应变得更加容易。祝你好运,如果有任何问题,请告诉我,如果我的回答能够让你走上正确的轨道。非常感谢你的时间和帮助。这对我来说非常有效!多亏了你,我又回到了正确的轨道上。试着更新你的答案,以展示如何在OPs代码中使用它。示例2就是我想要的。非常感谢您的支持和及时回复。