Javascript 从JSON文件中提取数据而无需下载
我想运行一个脚本,它接收一个JSON文件,对其执行一个函数,将选定的数据提取并格式化为一个变量$history,然后在HTML中呈现。JSON文件的格式为:Javascript 从JSON文件中提取数据而无需下载,javascript,jquery,json,Javascript,Jquery,Json,我想运行一个脚本,它接收一个JSON文件,对其执行一个函数,将选定的数据提取并格式化为一个变量$history,然后在HTML中呈现。JSON文件的格式为: {123: {"epochBlocks": 0, "blocks": 0, ..."}, "updatedAt": "2323432" <- (key I want to skip), ...} 在脚本的末尾,我使用$history.text$history以HTML的形式呈现它 使用上述代码,我没有得到任何输出。JSON文件的UR
{123: {"epochBlocks": 0, "blocks": 0, ..."}, "updatedAt": "2323432" <- (key I want to skip), ...}
在脚本的末尾,我使用$history.text$history以HTML的形式呈现它
使用上述代码,我没有得到任何输出。JSON文件的URL是可下载的,所以我不确定脚本是否可以读取它?我还认为if语句可能有问题,所以我把它注释掉了,仍然没有输出。请告诉我这个问题-我的代码或JSON url正在自动下载?
谢谢。美元.getJSON请求与$history.text$history一样异步;是在请求完成之前执行的,因此$history仍然是
您需要移动$history.text$history;进入“完成”回调:
let $history = "";
$.getJSON(
"https://pooltool.s3-us-west-2.amazonaws.com/8e4d2a3/pools/bd1d1aafead6f652f76f5921b4ffdb429d7eb9d5322d0f4700f4f70f997c5a82/epochstats.json"
).done(function (data) {
$.each(data.items, function (i, item) {
// if (!data.items[i].includes(/[\w]/gi)) { //if key does not contain letters, do below:
$history = $history + data[item].epochBlocks + "/" + data[item].blocks + "\n";
// }
});
$("#history").text($history);
});
除此之外:$.eachdata.items、functioni、item{将不会显示,因为返回的数据格式为:
{
"122": {
"epoch": 122,
"epochSlots": null,
"blocks": 0,
"blockstake": 0,
"stake": "1180516948",
"value_for_stakers": 0,
"value_taxed": 0
},
"123": {
"epoch": 123,
"epochSlots": null,
"blocks": 0,
"blockstake": 1180516948,
"stake": "32307048146",
"value_for_stakers": 0,
"value_taxed": 0
},
"124": {
"epoch": 124,
"epochSlots": 0,
"blocks": 0,
"blockstake": 32307048146,
"stake": "32311428152",
"value_for_stakers": 0,
"value_taxed": 0
},
"125": {
"epoch": 125,
"epochSlots": 0,
"blocks": 0,
"blockstake": 32311428152,
"stake": "249343099181",
"value_for_stakers": 0,
"value_taxed": 0
},
"updatedAt": 1587151808
}
所以没有属性项。所以您需要编写$.eachdata,函数i,item{标题有误导性。$history.text$history;应该在完成回调中,否则您将$history设置为en空字符串。请参阅:@Andreas为什么会出现错误?问题更可能是因为getJSON是异步的,$history.text$history;不在完成回调中。@Andreas获取文件对我有用。@t.niese您是对的。我得到了一个CORS错误,但它是由一个扩展而不是AWS引起的…那么这将是另一个重复的感谢,我现在将研究它。所以JSON自动下载不会影响代码,即脚本仍然可以读取它而不添加任何其他内容?@Andreas确定为什么我将其链接为dup,将答案写为community wiki,然后添加了t关于每一个可能被视为输入错误的附加说明,这将是下一个问题。@DamjanOstrelic如果您在getJSON中使用ajax请求文件,则自动下载将不会产生任何效果。现在已获得输出,只需计算格式!谢谢!
{
"122": {
"epoch": 122,
"epochSlots": null,
"blocks": 0,
"blockstake": 0,
"stake": "1180516948",
"value_for_stakers": 0,
"value_taxed": 0
},
"123": {
"epoch": 123,
"epochSlots": null,
"blocks": 0,
"blockstake": 1180516948,
"stake": "32307048146",
"value_for_stakers": 0,
"value_taxed": 0
},
"124": {
"epoch": 124,
"epochSlots": 0,
"blocks": 0,
"blockstake": 32307048146,
"stake": "32311428152",
"value_for_stakers": 0,
"value_taxed": 0
},
"125": {
"epoch": 125,
"epochSlots": 0,
"blocks": 0,
"blockstake": 32311428152,
"stake": "249343099181",
"value_for_stakers": 0,
"value_taxed": 0
},
"updatedAt": 1587151808
}