gpt4 book ai didi

使用 https url 的 Javascript JSON 解析

转载 作者:行者123 更新时间:2023-11-28 18:08:43 25 4
gpt4 key购买 nike

我正在尝试使用 url 获取 json 数据。现在我需要解析 Json 数据以仅从 url 获取提要数据。我正在添加下面的代码和 json 数据。任何人都可以帮助我怎么办解析来自以下 json 输出的提要数据。谢谢。

JSON 数据:

{
"channel": {
"id": 9,
"name": "my_house",
"description": "Netduino Plus connected to sensors around the house",
"latitude": "40.44",
"longitude": "-79.996",
"field1": "Light",
"field2": "Outside Temperature",
"created_at": "2010-12-13T20:20:06-05:00",
"updated_at": "2014-02-26T12:43:04-05:00",
"last_entry_id": 6060625
},
"feeds": [{
"created_at": "2014-02-26T12:42:49-05:00",
"entry_id": 6060624,
"field1": "188",
"field2": "25.902335456475583"
}, {
"created_at": "2014-02-26T12:43:04-05:00",
"entry_id": 6060625,
"field1": "164",
"field2": "25.222929936305732"
}]
}
<小时/>
$.ajax({
url: " https://api.thingspeak.com/channels/9/feeds.json?results=2",
dataType: "json",
cache: false,
error: function(xhr, ajaxOptions, thrownError) {
debugger;
alert(xhr.statusText);
alert(thrownError);
},
success: function(json1) {
console.log(json1);
if (json1.length == 0) {
window.alert("The returned output array length is ZERO.");
} else {
var obj1, Feed;
for (var x = 0; x < json1.length; x++) {
obj1 = json1[x];
console.log(obj1);
if (obj1 == null || obj1 == "") {
window.alert("\n The " + (x + 1) + "th object is NULL/BLANK.");
} else {

if (obj1.feeds == null || obj1.feeds.length == 0) {
window.alert("\n The name portion of " + (x + 1) + "th object is NULL/BLANK.");
} else {
Feed = obj1.feeds;

for (var k = 0; k < Feed.length; k++) {
console.log("\n The deails of " + (x + 1) + "th Object are : \nCreated_at: " + Feed[k].created_at + "\nEntry_id:" + Feed[k].entry_id + "\nField1:" + Feed[k].field1 + "\nField2:" + Feed[k].field2);
}
}
}
}
}
}
});

最佳答案

json1 不是数组,而是对象。您需要访问对象的 .feeds 属性才能获取 feed 数组。像这样的事情:

$.ajax({
url: " https://api.thingspeak.com/channels/9/feeds.json?results=2",
dataType: "json",
cache: false,
error: function(xhr, ajaxOptions, thrownError) {
debugger;
alert(xhr.statusText);
alert(thrownError);
},
success: function(json) {
console.log(json);
if (!json || json.feeds === undefined || json.feeds.length === 0) {
window.alert("The returned output array length is ZERO.");
} else {
json.feeds.forEach(function (feed, index) {
var indexPlusOne = index + 1;
console.log("The deails of " + indexPlusOne + "th Object are : \nCreated_at: " + feed.created_at + "\nEntry_id:" + feed.entry_id + "\nField1:" + feed.field1 + "\nField2:" + feed.field2);
});
}
}
});

如果使用 ES2015 和模板字符串,可以使其更具可读性:

$.ajax({
url: " https://api.thingspeak.com/channels/9/feeds.json?results=2",
dataType: "json",
cache: false,
error: (xhr, ajaxOptions, thrownError) => {
debugger;
alert(xhr.statusText);
alert(thrownError);
},
success: (json) => {
console.log(json);
if (!json || json.feeds === undefined || json.feeds.length === 0) {
window.alert("The returned output array length is ZERO.");
} else {
json.feeds.forEach(function (feed, index) {
var indexPlusOne = index + 1;
console.log(`
The deails of ${indexPlusOne}th Object are:
Created_at: ${feed.created_at}
Entry_id: ${feed.entry_id}
Field1: ${feed.field1}
Field2: ${feed.field2}`);
});
}
}
});

除非您确实需要使用 cache 选项,否则我也会将其简化为仅使用 jQuery.getJSON 而不是 jQuery.ajax:

$.getJSON("https://api.thingspeak.com/channels/9/feeds.json?results=2")
.fail((req, status, err) => {
console.error(`AJAX call failed: ${err}`);
})
.done((data) => {
console.log(data);
if (!data || data.feeds === undefined || data.feeds.length === 0) {
window.alert("The returned output array length is ZERO.");
} else {
data.feeds.forEach(function (feed, index) {
var indexPlusOne = index + 1;
console.log(`
The deails of ${indexPlusOne}th Object are:
Created_at: ${feed.created_at}
Entry_id: ${feed.entry_id}
Field1: ${feed.field1}
Field2: ${feed.field2}`);
});
}
});

关于使用 https url 的 Javascript JSON 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42082819/

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