我希望从服务器URL中提取JSON数据,如下所示:
https://dev.randomdomain.com/subdomain
URL本身输出如下数据:
[
{ "name": "Not configured",
"mac_address": "####c##c####",
"online": "false",
"rate": "Not configured"},
{ "name": "Not configured",
"mac_address": "####c##c####",
"online": "false",
"rate": "Not configured"},
]
输出的数据发生变化,需要相应更新。我想知道从URL检索JSON数据并保持更新的最佳方法是什么?我查看了jQuery getJSON函数,我不确定它是否可行,因为URL只是输出JSON,它不是.json文件。
我所描述的可以使用JavaScript,jQuery或任何其他开放式方法完成吗?
感谢。
答案 0 :(得分:1)
$,getJSON('url',function(data){
alert(data);
// or alert("sample text"); would do if the json file is handled well enough.
// if no alert is shown, it's either you're using chrome with an offline version of
// your project or you're having an invalid json file
});
请问您使用的浏览器是什么?如果您在离线模式下执行此操作,$.getJSON
将无法在Chrome中使用。
即使我不使用Chrome,我也很沮丧为什么json文件没有被处理 - 例如我使用FF或IE。
我发现你不应该把注释放在json文件中,因为它会使它无效。我认为,这是因为.getJSON
真正将JSON文件中的数据解析为文本,而不是javascript文件,所以它也会通过注释运行(如果你有的话),并且肯定不会理解它,所以我建议你删除你的json文件中的注释块。
答案 1 :(得分:0)
您是否尝试过使用$.getJSON()
?它完全符合您的需要,它只是从服务器读取响应并返回一个json对象。
答案 2 :(得分:0)
首先,您实际上是在尝试从响应中解析JSON。网址是您请求回复的内容。这是一个使用getJSON的简单示例:
$.getJSON('https://dev.randomdomain.com/subdomain', function(data) {
var output = "";
$.each(data, function(index, node) {
output += node.name + ": " + node.mac_address + "<br/>";
});
document.write(output);
});
答案 3 :(得分:0)
如果您想在客户端(浏览器等)或服务器端处理数据以进行离线处理,您的问题并不十分清楚。
为了在服务器端访问和处理这些数据,您可以使用curl / libcurl来提取数据并将其解码为您选择的语言的对象。例如在php:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://dev.randomdomain.com/subdomain");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
data_as_php_object = json_decode($output);
?>
答案 4 :(得分:0)
函数$.getJSON()是将字符串以JSON格式放入javascript对象中。因此,如果您想获取数据,可以尝试:
$.getJSON("https://dev.randomdomain.com/subdomain",function(data){
alert(data[0].name);
});
答案 5 :(得分:-1)
您信任JSON字符串的来源吗?如果你这样做,只需使用
alert(eval(dropStringHere));
getJSON jQuery方法也应该可以正常工作。