我无法解析从此http://dbpedia.org/data/Los_Angeles.json网址获取的json文件。
我需要从上面的URL中找到的json数据中找到populationTotal,areaTotal,populationDensity字段。
这是从http://dbpedia.org/data/Los_Angeles.json网址获取的json数据的片段。 例如。
"http://dbpedia.org/ontology/populationTotal" : [
{ "type" : "literal",
"value" : 3792621 ,
"datatype" : "http://www.w3.org/2001/XMLSchema#integer" } ] ,
"http://dbpedia.org/ontology/PopulatedPlace/areaTotal" : [
{ "type" : "literal",
"value" : "1301.9688931491348" ,
"datatype" : "http://dbpedia.org/datatype/squareKilometre" } ,
我怎么能得到这个Json数据并使用Javascript输出它。
答案 0 :(得分:0)
这有帮助吗?
var populationTotalData=[];
for(var key in data) {
if(key.match(/populationTotal/))
// or simplier: if(key.indexOf("populationTotal")>-1)
populationTotalData.push(data[key]);
}
答案 1 :(得分:0)
由于Same-Origin Policy,您通常无法使用JavaScript直接获取数据。但是,事实证明dbpedia.org支持JSON-P,所以你可以用这样的直接JavaScript获取数据:
// This is the "callback" function. The 'data' variable will contain the JSON.
// You can access it like I have done in the alert below.
mycallback = function(data){
alert(data["http://fr.dbpedia.org/resource/Los_Angeles"]["http://www.w3.org/2002/07/owl#sameAs"][0].value);
};
// This is the function we use to fetch the JSON data:
function requestServerCall(url) {
var head = document.head;
var script = document.createElement("script");
script.setAttribute("src", url);
head.appendChild(script);
head.removeChild(script);
}
// Note the query string that I have added (?callback=mycallback).
// This is the name of the function that will be called with the JSON data.
requestServerCall('http://dbpedia.org/data/Los_Angeles.json?callback=mycallback');
可以找到更多关于JSONP的非常好的信息here。您可以使用这样的代码在mycallback
函数内部循环。显然,你必须使嵌套循环得到你想要的,所以这段代码需要修改以满足你的确切需求。
<script type="text/javascript">
for(var index in data) {
console.log(data[index]);
}
</script>
另一种方法是通过PHP。例如:您可以将整个页面分成如下的JavaScript变量:
<?php
$los_angeles = file_get_contents('http://dbpedia.org/data/Los_Angeles.json');
?>
<script type="text/javascript">
var data = <?php echo $los_angeles; ?>;
alert(data["http://fr.dbpedia.org/resource/Los_Angeles"]["http://www.w3.org/2002/07/owl#sameAs"][0].value)
</script>