使用Javascript从JSON API中提取数据

时间:2014-04-10 06:38:53

标签: javascript json jsonp

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

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

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>

以下是URL显示的数据:

{
   "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
      }
   }
}

3 个答案:

答案 0 :(得分:1)

由于数据来自外部域,因此除非服务器启用了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使服务器返回包含对processResponse的函数调用的JS。如何访问您真正想要的信息将在Access / process (nested) objects, arrays or JSON中解释。

答案 1 :(得分:0)

你以哪种方式调用JSON?

您可以使用回调函数( working example )来调用它,包括它作为脚本:

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

答案 2 :(得分:0)

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

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

var objectJSON = JSON.parse(jsonStr);

你也可以使用stringify fucntion反之亦然。