无法从 Hacker News API 调用 JSON 数据
Unable to call JSON data from Hacker News API
我正在尝试使用 Hacker News API ,我可以调用 API 并发出获取故事的请求。根据他们的 API 文档,来源 URL 必须包含 ID(必需)才能访问故事的内容,我在控制台中得到正确的 URL 并单击 URL 给出了适当的 JSON 但除此之外我无法 use/call JSON 内容,如作者姓名、标题等
JS CODE:
var records;
var userRecords;
var fileJson;
var startRequest = new XMLHttpRequest();
var sourceUrl = "https://hacker-news.firebaseio.com/v0/";
var sourceUrlAdd = "showstories.json";
var finalURL = sourceUrl + sourceUrlAdd;
startRequest.open("GET",finalURL);
startRequest.onload = function() {
fileJson = JSON.parse(startRequest.responseText);
for(var i = 0 ; i < fileJson.length; i++) {
userRecords = sourceUrl + fileJson[i] + ".json";
}
}
startRequest.send();
如何让它发挥作用?
查看信息:GitHub
你在循环中的URL应该修改为:
for(var i = 0 ; i < fileJson.length; i++) {
userRecords = sourceUrl + "/item/" + fileJson[i] + ".json";
}
您的代码看起来不完整,因为循环只会在每次迭代时覆盖 userRecords,如果您想存储它们:
userRecords = [];
for(var i = 0 ; i < fileJson.length; i++) {
userRecords.push(sourceUrl + "/item/" + fileJson[i] + ".json");
}
以上将为您提供一个包含所有结果的数组。
例如,这是 userRecords 数组中第一项的内容:
{"by":"ntrippar"
,"descendants":45
,"id":15853345
,"kids"[15858055,15854752,15856479,15854664,15858253,15856298,15854305,15855332,15858118,15857061,15854116]
,"score":159
,"time":1512494533
,"title":"Show HN: SeKey: An SSH Agent for OS X, Using Secure Enclave and TouchID, in Rust"
,"type":"story"
,"url":"https://github.com/ntrippar/sekey"}
如果你解析上面的内容,它将转化为一个对象。
我正在尝试使用 Hacker News API ,我可以调用 API 并发出获取故事的请求。根据他们的 API 文档,来源 URL 必须包含 ID(必需)才能访问故事的内容,我在控制台中得到正确的 URL 并单击 URL 给出了适当的 JSON 但除此之外我无法 use/call JSON 内容,如作者姓名、标题等
JS CODE:
var records;
var userRecords;
var fileJson;
var startRequest = new XMLHttpRequest();
var sourceUrl = "https://hacker-news.firebaseio.com/v0/";
var sourceUrlAdd = "showstories.json";
var finalURL = sourceUrl + sourceUrlAdd;
startRequest.open("GET",finalURL);
startRequest.onload = function() {
fileJson = JSON.parse(startRequest.responseText);
for(var i = 0 ; i < fileJson.length; i++) {
userRecords = sourceUrl + fileJson[i] + ".json";
}
}
startRequest.send();
如何让它发挥作用?
查看信息:GitHub
你在循环中的URL应该修改为:
for(var i = 0 ; i < fileJson.length; i++) {
userRecords = sourceUrl + "/item/" + fileJson[i] + ".json";
}
您的代码看起来不完整,因为循环只会在每次迭代时覆盖 userRecords,如果您想存储它们:
userRecords = [];
for(var i = 0 ; i < fileJson.length; i++) {
userRecords.push(sourceUrl + "/item/" + fileJson[i] + ".json");
}
以上将为您提供一个包含所有结果的数组。
例如,这是 userRecords 数组中第一项的内容:
{"by":"ntrippar"
,"descendants":45
,"id":15853345
,"kids"[15858055,15854752,15856479,15854664,15858253,15856298,15854305,15855332,15858118,15857061,15854116]
,"score":159
,"time":1512494533
,"title":"Show HN: SeKey: An SSH Agent for OS X, Using Secure Enclave and TouchID, in Rust"
,"type":"story"
,"url":"https://github.com/ntrippar/sekey"}
如果你解析上面的内容,它将转化为一个对象。