gpt4 book ai didi

javascript - 访问 JSONP 的响应文本。将多个对象拼合为文本

转载 作者:行者123 更新时间:2023-12-02 14:11:48 25 4
gpt4 key购买 nike

我正在拉一些 JSONP 来检索数据以插入 highcharts...

$(function() {

$.getJSON("http://xxxx.xxxxx&?callback=?", function(json){

var data = json;
var options = {
xAxis: {
type: 'datetime'
},
series: [{
data: []
}]
}
Highcharts.each(data, function(p, i) {
for (var i = 0; i < p.length; i++) {
options.series[0].data.push(
[p[i].timeBucket, parseFloat(p[i].errors)]
);
}
});

$('#container').highcharts(options);
});
});

通过 Firebug 查看时的数据结构是(示例)....

[[{"timeBucket": XXXXXX, "errors": 10}],[{"timeBucket": XXXXXX, "errors": 30}],[{"timeBucket": XXXXXX, "errors": 20}]] ......

Firebug 中显示的结构是 10 个对象,这是事实,但对于我来说,我就是无法解析它。

结果,什么也没有发生。

我所做的是 curl 响应并将其保存为“data.json”并相应地更改了我的代码......

$.getJSON("data.json", function(json){

它就像冠军一样工作!当我 console.log 的 typeof 时,我确实得到了“Object”(单数),所以看来我需要以某种方式将所有这 10 个对象扁平化为一个,并且不知道如何做到这一点。

我尝试过 JSON.stringify 但没有运气,我尝试过 JSON.stringify(json) 然后 JSON.parse(json)

当我在 Firebug 中看到响应文本时,这正是我正在寻找的内容。有人知道我如何修改我的代码以使用诱人且所需的响应文本而不是 10 目标代码吗?

最佳答案

您可以使用jQuery.map重新映射它,以便您的对象位于一个数组中。

Description: Translate all items in an array or object to new array of items.

因此您必须将 var data = json; 替换为

var data = $.map(json,function(x,i){
return x[0];
});

这将为您提供 [{},{},{}] 格式,您可以在循环中访问该格式,例如

 $.each(data, function(i,p) {
options.series[0].data.push(
[p.timeBucket, parseFloat(p.errors)]
)
});

或者如果你想保留原来的循环,你可以这样做

for (var i = 0; i < data.length; i++) {
options.series[0].data.push(
[data[i].timeBucket, parseFloat(data[i].errors)]
);
}

var x = [[{"timeBucket": 111, "errors": 10}],[{"timeBucket": 222, "errors": 30}],[{"timeBucket": 333, "errors": 20}]];

var data = $.map(x,function(x,i){
return x[0];
});
$('#results').html(JSON.stringify(data));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='results'>

关于javascript - 访问 JSONP 的响应文本。将多个对象拼合为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39478152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com