如何提取以下数据。我只想打印此API中“networkdiff”之后的值编号。
这是来自其他网站的API的网址:
我希望代码能够自动从上面的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
}
}
}
答案 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反之亦然。