2014-04-10 77 views
0

如何提取以下數據。我只想打印出此API中「networkdiff」之後的數值。使用JavaScript從JSON API中提取數據

這是從不同的網站的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> 

下面的網址是出現了因爲數據:

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

我假設他們被列爲數組?有點像列表? – Python2014

+0

console.log(jsonName.getpoolstatus.data.networkdiff) –

+0

你可能不應該在這裏發佈你的API密鑰。 –

回答

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對象,您可以在參數中定義回調,如下面的示例但您必須具有相同來源(您的腳本必須以相同的d運行omain(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

+0

我想從其他網站的API中提取數據並將其發佈到我的網頁上。早些時候,我寫下了錯誤的問題:( – Python2014

+0

即使jQuery可用,但由於數據來自外部URL,因此您的代碼無法正常工作。 –

+0

我不確定使用哪種方式?我只想要一塊值「networkdiff」在網頁上顯示 – Python2014

1

由於數據來自外部域,因此無法使用Ajax獲取數據,除非服務器啓用了CORS。這似乎並不如此,但似乎支持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。如何訪問您實際需要的信息在Access/process (nested) objects, arrays or JSON中進行了解釋。

0

您需要在您的網頁中包含JSON.js才能在JavaScript中使用JSON函數。這裏是下載的URL https://github.com/douglascrockford/JSON-js

然後你可以使用beloe代碼來解析JOSN字符串到JavaScript對象。

var objectJSON = JSON.parse(jsonStr); 

你可以使用stringify函數到viceversa。

+0

您推薦使用JSON.js,但您使用的是jQuery函數嗎?另外,JSON解析本身是由JavaScript支持的,包括JSON.js只適用於較老的瀏覽器 –

+0

它是'JSON.parse',而不是'JSON.parseJSON'。 –

+0

謝謝Felix :)請求紅色變化 – Aryan