解析外部JsonFile

时间:2013-04-16 08:44:47

标签: javascript json

嘿伙计们我试图解析以下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>

在本网站上找到:http://iviewsource.com/codingtutorials/getting-started-with-javascript-object-notation-json-for-absolute-beginners/

我刚接触javascript的json。我也尝试了不同的方法。那么任何人都可以告诉我,我做错了什么? Thx提前:))

4 个答案:

答案 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从不同的域加载文件。

http://en.wikipedia.org/wiki/Same_origin_policy

答案 3 :(得分:0)

我尝试了它并且对象没有.ueberschrift,它有.Ueberschrift这很重要(例如,情况)。


此外,这是jquery,所以(警告:这是我的风格挑剔):

for (var i in data.news)

应该是

$(data.news).each( ...

document.getElementById("placeholder").innerHTML=output;

应该是

$('#placeholder').html(output);