我想利用时间戳从http://chartapi.finance.yahoo.com/instrument/1.1/goog/chartdata;type=close;range=1d/json/?callback=?
改变格式成类似于JS阵列[解决]
JSON数据的/关闭到看起来像一个JS阵列中http://www.highcharts.com/samples/data/jsonp.php?filename=goog-c.json&callback=?
参见:http://jsfiddle.net/gMs6n/( 更新:http://jsfiddle.net/gMs6n/2/)(视图控制台以查看数据日志) 使用Highcharts示例工作版本:http://jsfiddle.net/gMs6n/1/
$(function() {
// ajax in data
$.ajax({
type: 'GET',
dataType: 'jsonp',
cache: true, jsonp: false, jsonpCallback: 'graph',
url: 'http://chartapi.finance.yahoo.com/instrument/1.1/goog/chartdata;type=close;range=1d/json/?callback=graph', // http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=graph
processData: false
}).success(function(data) {
// manipulate the data
console.log(data);
//JSON.parse(data);
// create a new data object
$.each(data.series, function (i, val) {
for (var key in data.series[i]) {
//console.log(key);
console.log(data.series[i][key]); // how to pair up the timestamp/close in a new data object?
}
});
// Create the chart
/*
$('#container').highcharts('StockChart', {
series: [{
data: data,
tooltip: {
valueDecimals: 2
}
}]
});
*/
});
});
我已经试过JSON.parse(data);
和$.parseJSON(data);
但我得到一个错误。我一定做错了什么。
怎样操纵它后阿贾克斯所以用“数据”是Highcharts可以使用结束了?我正在使用$.each
来迭代数据以形成新的数据集。 如何配对新数据对象中的时间戳/关闭?
对数据进行迭代,从旧数据中创建与所需输出相匹配的新数据。 'JSON.parse'和'$ .parseJSON'比最初的JSON字符串转换成JavaScript数组/对象,jQuery是已经为你做无用的这个任务,其他。 –
数据*已经是* JavaScript对象(不是JSON,JSON是* text *)。如果dataType是“json”或“jsonp”,jQuery将透明地处理转换。在成功回调中使用调试器并检查'data'并查看它包含的结构 - 并适当地使用它。 – user2864740
听起来像是[.MAP](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) – tenub