我可以't返回我的json对象
I can't return my json object
我在返回JSON对象时遇到问题,而我得到的只是一个未定义的变量。
这段代码应该从API返回一个json元素。它似乎成功了:函数,但一旦我尝试将数据带到其他地方,它就会显示"未定义"的
var datas;
datas = getdata();
//getdata();
createChart(datas)
alert('2datass'+datas); // this returns undefined
function createChart(data){
alert(data); //outputs undefined
}
function getdataaa(){
alert('ajax');
$.ajax({
type: "GET",
dataType: "json",
url: "API URL",
success: function(data){
alert(data); // WORKS! and outputs my JSON data
/*
for(var i =0;i <= data.length-1;i++)
{
var item = data[i];
datas = datas + {
type: 'column',
name: item.name,
data: [item.difference]
};
}
*/
//Neither of these returns seems to work
return jQuery.parseJSON(data);
return data;
}
});
};
如有任何帮助,我们将不胜感激。
解决方案
感谢所有提供帮助的人。
似乎做到了
var datas;
datas = getData();
//getdata();
alert('2datass'+datas);
console.log(datas);
createChart(datas);
function createChart(data){
alert('createChart'+data);
var dynamicData;
for(var i =0;i <= data.length-1;i++)
{
var item = data[i];
dynamicData = dynamicData + {
type: 'column',
name: item.name,
data: [item.difference]
};
}
alert('dynamic' +dynamicData); // works, but says undefined before - outputs dynamic undefined[object Object][object Object][object Object][object Object][object Object]
var series = [dynamicData,{
type: 'column',
name: 'Jane',
data: [300, 30]
}, {
type: 'column',
name: 'John',
data: [-200, 50]
}, {
type: 'column',
name: 'Joe',
data: [444, -25]
}, {
type: 'column',
name: 'Jobe',
data: [444, -25]
}, {
type: 'column',
name: 'Jooe',
data: [444, -25]
},{
type: 'column',
name: 'Jane',
data: [300, 30]
}
, {
type: 'pie',
name: 'Total consumption',
data: [{
name: 'Jane',
y: 13
//color: '#4572A7' // Jane's color
}, {
name: 'John',
y: 23
//color: '#AA4643' // John's color
}, {
name: 'Joe',
y: 19
//color: '#89A54E' // Joe's color
}],
center: [30, 80],
size: 100,
showInLegend: false,
dataLabels: {
enabled: false
}
}];
var options = {
chart: {
renderTo: 'container'
},
title: {
text: 'Account Managers Leaderboard'
},
xAxis: {
categories: ['Month on Month', 'Day on Day']
},
tooltip: {
formatter: function() {
var s;
if (this.point.name) { // the pie chart
s = ''+
this.point.name +': '+ this.y +' sales';
} else {
s = ''+
this.x +': '+ this.y;
}
return s;
}
},
labels: {
items: [{
html: 'Total proportion of sales <br />this month',
style: {
left: '40px',
top: '-5px',
color: 'black'
}
}]
},
series: series
};
$(document).ready(function() {
var chart;
chart = new Highcharts.Chart(options);
});
}
function getData(){
//alert('ajax');
var receivedData; // store your value here
$.ajax({
type: "GET",
dataType: "json",
url: "API URL",
async: false,
success: function(data){
alert('data'+data); //works
receivedData = data;
}
});
return receivedData;
};
AJAX调用默认情况下是异步的,您必须使用以下方法从AJAX调用返回响应:
function getdataaa() {
return $.ajax({
type: "GET",
dataType: "json",
url: "API URL",
async: false // NOTICE THIS
}).responseText; // AND THIS
};
我不确定responseText是解析的还是未解析的JSON,但看看你从那里得到了什么。
问题是从success
函数返回,而不是从getdataaa
函数返回。getdataaa
没有返回语句,因此默认情况下返回undefined
。Return语句引用最接近的函数。
success: function(data){
alert(data); // WORKS! and outputs my JSON data
...
//Neither of these returns seems to work
return jQuery.parseJSON(data);
return data;
}
这就是你得到的。你可以使用这样的闭包来获得结果:
function getdataaa(){
alert('ajax');
var receivedData; // store your value here
$.ajax({
type: "GET",
dataType: "json",
url: "API URL",
async: false,
success: function(data){
alert(data);
// ...
receivedData= data;
}
});
return receivedData;
};
代替:
return jQuery.parseJSON(data);
或
return data;
直接调用createChart
函数:
createChart(data)
相关文章:
- 用我的json数据填充JQuery DataTable
- 如何将我的json结构转换为C3.js所需的列结构
- JavaScript,JQuery.需要帮助才能获得'name'从我的JSON中删除
- 无法在我的JSON文件中发布数据
- 如何更改我的 json 结构
- 我可以't返回我的json对象
- Sammy.js不理解我的json
- d3.js没有从PHP文件中读取我的JSON数据
- 我希望joint.js库读取我的JSON并将其显示为一个单元格:rect和circle
- 在这种情况下,如何访问我的JSON代码
- jQuery/PHP-POST-Forbidden(403)当试图在我的JSON数据中发送完整的URL时
- 对我的 JSON 响应进行排序
- 如何阅读我的json并用纯nodejs将其发送到电子邮件
- 我正在尝试用D3可视化我的json对象.我希望日期是x轴,y是销售额.数值存储为字符串
- Yeoman webapp deploy,我的json文件don'不起作用
- 自动完成jquery与我的json不匹配
- 如何提醒我的 json 结果
- 试图弄清楚为什么我无法解析我的 JSON 文件
- 为什么我无法从我的 json 文件中检索数据
- 尝试遍历我的 json 时,我变得未定义