如何使用JavaScript和HTML从RESTAPI中选择特定数据

如何使用JavaScript和HTML从RESTAPI中选择特定数据,javascript,php,html,Javascript,Php,Html,您好,我正在尝试创建一个简单的javascript,用于从RESTAPI提取数据。我希望在API或json项目列表中只提取1个数据集 其中,我只需要将“最后一个”数据集包含在总体中,而不是所有其他数据 我尝试过使用一种不同的方法,通过curl检索最后的价格数据集,但是资源在php中阻塞了请求。因此,我需要使用javascript来实现这一点 document.getElementById("output").innerHTML = (ourRequest.responseText); 我已尝试

您好,我正在尝试创建一个简单的javascript,用于从RESTAPI提取数据。我希望在API或json项目列表中只提取1个数据集

其中,我只需要将“最后一个”数据集包含在总体中,而不是所有其他数据

我尝试过使用一种不同的方法,通过curl检索最后的价格数据集,但是资源在php中阻塞了请求。因此,我需要使用javascript来实现这一点

document.getElementById("output").innerHTML = (ourRequest.responseText);
我已尝试将此部分更改为

document.getElementById("output").innerHTML = (ourRequest.responseText.last);
然而,其他一些变量在输出上没有成功

下面是我到目前为止编写的js代码,但是它在页面上显示了所有API信息,我只需要选择其中的一部分信息

<p id="output"></p>

<script>
var burl = "https://api.idex.market/returnTicker?market=ETH_STASH";
var url = burl;
var ourRequest = new XMLHttpRequest();
ourRequest.open('GET',url,true);
ourRequest.onload = function(){

document.getElementById("output").innerHTML = (ourRequest.responseText);
}
ourRequest.send();
</script>

var burl=”https://api.idex.market/returnTicker?market=ETH_STASH"; var url=burl; var ourRequest=new XMLHttpRequest(); open('GET',url,true); ourRequest.onload=函数(){ document.getElementById(“输出”).innerHTML=(ourRequest.responseText); } ourRequest.send();
我预计只有0.00000001512001,结果是“最后”数据集

输出如下:

{“最后”:“0.0000000 1512001”,“高”:“0.00000015”,“低”:“0.0000000 1512001”,“低斯塔斯克”:“0.000000 58999999”,“最高出价”:“0.0000000 1”,“百分比变化”:“-89.9199933”,“基本量”:“0.965950839330223243”,“报价表”:“24272447.879302712135495139”}

您可以在此处测试并编辑它以进行尝试:

尝试更改

document.getElementById(“输出”).innerHTML=(ourRequest.responseText)

document.getElementById(“输出”).innerHTML=(JSON.parse(ourRequest.responseText.last)

完整的工作解决方案:


var burl=”https://api.idex.market/returnTicker?market=ETH_STASH";
var url=burl;
var ourRequest=new XMLHttpRequest();
open('GET',url,true);
ourRequest.onload=函数(){
document.getElementById(“output”).innerHTML=JSON.parse(ourRequest.responseText).last;
}
ourRequest.send();

使用将responseText转换为有效的JavaScript对象

let returned_data = JSON.parse(ourRequest.responseText);
然后访问最后一个属性作为

 last = returned_data['last'];
编辑

var burl=”https://api.idex.market/returnTicker?market=ETH_STASH";
var url=burl;
var ourRequest=new XMLHttpRequest();
open('GET',url,true);
ourRequest.onload=函数(){
让返回的_data=JSON.parse(ourRequest.responseText);
let last=返回的_数据['last'];
document.getElementById(“输出”).innerHTML=last;
}
ourRequest.send();

这将导致以下结果“undefined”(未定义),我已编辑了答案-您需要先将响应解析为JSON,然后才能使用itI。我也尝试了更新后的代码,但不起作用。你能尝试一下问题描述中提供的链接来帮助我更好地解决问题吗..我在上面和w3schools示例中再次进行了更新。我将
.last
移到了JSON.parse方法之外是的,很抱歉,我使用了前面答案中的旧测试。你的方法是正确的!我尝试了你的方法,但是它根本没有返回任何数据。这是代码“code”

var burl=“”;var url=burl;var ourRequest=new XMLHttpRequest();open('GET',url,true);ourRequest.onload=function(){document.getElementById(“output”).innerHTML=(ourRequest.responseText);}让返回的数据=JSON.parse(ourRequest.responseText);last=返回的_数据['last'];我们的请求。发送();'你搞错了。我的意思是,ourRequest.onload=function(){let returned_data=JSON.parse(ourRequest.responseText);let last=returned_data['last'];document.getElementById(“output”).innerHTML=last;}也许你可以使用描述中的链接来测试和保存代码,这样我就能理解你的意思,因为我添加了代码,但我认为它放错地方了。
 last = returned_data['last'];
<script>
var burl = "https://api.idex.market/returnTicker?market=ETH_STASH";
var url = burl;
var ourRequest = new XMLHttpRequest();
ourRequest.open('GET',url,true);
ourRequest.onload = function(){
let returned_data = JSON.parse(ourRequest.responseText);
let last = returned_data['last'];
document.getElementById("output").innerHTML = last;
}
ourRequest.send();
</script>