嘿伙计们我试图解析以下json文件:http://osthessen-news.de/json2.php
为实现这一点,我使用以下javascript:
更新:
<body>
<div id="placeholder"></div>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
var url = 'http://osthessen-news.de/json2.php';
alert("ASDFFD");
$(document).ready(function(){
var url = "http://osthessen-news.de/json2.php";
$.getJSON(url, function(data) {
var output="<ul>";
for (var i in data.news) {
output+="<li>" + data.news[i].id + " " + data.news[i].Ueberschrift +"</li>";
}
output+="</ul>";
document.getElementById("placeholder").innerHTML=output;
});
});
</script>
</body>
我刚接触javascript的json。我也尝试了不同的方法。那么任何人都可以告诉我,我做错了什么? Thx提前:))
答案 0 :(得分:1)
使用常规for循环而不是for..in语法。 For..in
主要用于迭代对象的属性,而常规语法更适合于数组。由于news是一个数组,因此常规语法是最合适的。
for (var i = 0; i < data.news.length; i++) {
output+="<li>" + data.news[i].id + " " + data.news[i].ueberschrift +"</li>";
}
另外,请尝试将所有这些包装在document.ready
$(document).ready(function(){
var url = "http://osthessen-news.de/json2.php";
$.getJSON(url, function(data) {
var output="<ul>";
for (var i in data.news) {
output+="<li>" + data.news[i].id + " " + data.news[i].ueberschrift +"</li>";
}
output+="</ul>";
document.getElementById("placeholder").innerHTML=output;
});
});
答案 1 :(得分:0)
使用常规的每个循环而不是for..in语法。
jQuery.each(data.news, function(j, val) {
output+="<li>" + val.id + " " + val.ueberschrift +"</li>";
}
答案 2 :(得分:0)
我在Chrome上收到错误(XMLHttpRequest无法加载http://osthessen-news.de/json2.php。Access-Control-Allow-Origin不允许使用Origin null。)
您无法通过AJAX从不同的域加载文件。
答案 3 :(得分:0)
我尝试了它并且对象没有.ueberschrift
,它有.Ueberschrift
这很重要(例如,情况)。
此外,这是jquery,所以(警告:这是我的风格挑剔):
for (var i in data.news)
应该是
$(data.news).each( ...
和
document.getElementById("placeholder").innerHTML=output;
应该是
$('#placeholder').html(output);