繁体   English   中英

使用Javascript从JSON API提取数据

[英]Extract data from JSON API using Javascript

如何提取以下数据。 我只想在此API中的“ networkdiff”之后打印出值编号。

这是来自其他网站的API的URL:

http://21.luckyminers.com/index.php?page=api&action=getpoolstatus&api_key=8dba7050f9fea1e6a554bbcf4c3de5096795b253b45525c53562b72938771c41

我希望代码自动从上面的URL检索数据,并在“ networkdiff”之后显示值以显示在其他网页上。

到目前为止,这是我的代码,可以放入自己的网页中:

<HTML>
<body>

<script>
  I don't know what I should put in this script part.
</script>

</body>
</html>

以下是网址显示的数据:

{
   "getpoolstatus":{
      "version":"1.0.0",
      "runtime":10.684967041016,
      "data":{
         "pool_name":"21 Coin Pool @ Luckyminers.com",
         "hashrate":0,
         "efficiency":97.79,
         "workers":0,
         "currentnetworkblock":0,
         "nextnetworkblock":1,
         "lastblock":40544,
         "networkdiff":1,
         "esttime":0,
         "estshares":4096,
         "timesincelast":1240429,
         "nethashrate":0
      }
   }
}

由于数据来自外部域,因此除非服务器启用了CORS,否则无法使用Ajax来获取数据。 似乎并非如此,但似乎支持JSONP

<script>
    function processResponse(data) {
        console.log(data);
    }
</script>
<script src="http://21.luckyminers.com/index.php?page=api&...&callback=processResponse></script>

callback=parseResponse使服务器返回JS,其中包括对processResponse的函数调用。 访问/处理(嵌套)对象,数组或JSON中说明了如何访问您真正想要的信息。

您以哪种方式调用JSON?

您可以使用回调函数( 工作示例 )来调用它,并将其作为脚本包括在内:

updateResult=function()
 {
  var s=document.createElement('script');
  s.src=domain+"/index.php?page=api&callback=showResult&action=getpoolstatus&api_key="+api_key;
  document.body.appendChild(s);
 }

您必须像这样定义回调:

showResult=function(data)
 {
  document.getElementById('result').innerText=data.getpoolstatus.data.networkdiff;
 }

如果使用JQuery调用它并获取JSON对象,则可以像下面的示例一样在参数中定义回调, 但是必须具有相同的来源 (您的脚本必须在相同的域中运行(在这种情况下为21.luckyminers.com) ):

$.getJSON(
  domain+"/index.php?page=api&action=getpoolstatus&api_key="+api_key,
  function(data)
   {
    document.getElementById('result').innerText=data.getpoolstatus.data.networkdiff;
   }
 );

但是无论如何都要小心 您从哪里获得API密钥? 如果将其放在客户端脚本(如JavaScript)上,则任何人都可以读取该密钥,并且使用该密钥可能会造成一些损害……:S

您需要在网页中包含JSON.js才能在javascript中使用JSON函数。 这是下载的URL https://github.com/douglascrockford/JSON-js

然后,您可以使用beloe代码将JOSN字符串解析为javascript对象。

var objectJSON = JSON.parse(jsonStr);

反之,您还可以使用字符串化功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM