为什么我的函数无法从JSON文件中获取数据?

时间:2014-06-24 21:08:16

标签: javascript json

我正在尝试使用JSON文件并弄清楚它是如何工作的。我有一个附加到我的文档的JSON文件和一个与JSON文件中的对象同名的函数。但是它必须将数据放在div上,但事实并非如此。这是我的代码:

Json文件:

myFunction([
{
"display": "HTML Tutorial",
"url": "http://www.w3schools.com/html/default.asp"
},
{
"display": "CSS Tutorial",
"url": "http://www.w3schools.com/css/default.asp"
},
{
"display": "JavaScript Tutorial",
"url": "http://www.w3schools.com/js/default.asp"
},
{
"display": "jQuery Tutorial",
"url": "http://www.w3schools.com/jquery/default.asp"
},
{
"display": "JSON Tutorial",
"url": "http://www.w3schools.com/json/default.asp"
},
{
"display": "AJAX Tutorial",
"url": "http://www.w3schools.com/ajax/default.asp"
},
{
"display": "SQL Tutorial",
"url": "http://www.w3schools.com/sql/default.asp"
},
{
"display": "PHP Tutorial",
"url": "http://www.w3schools.com/php/default.asp"
},
{
"display": "XML Tutorial",
"url": "http://www.w3schools.com/xml/default.asp"
}
])

JS功能:

function myFunction(arr) {
    var out = "";
    var i;
    for (i = 0; i < arr.length; i++) {
        out += '<a href="' + arr[i].url + '">' + arr[i].display + '</a><br>';
    }
    document.getElementById("w3schools").innerHTML = out;

以下是演示:http://jsfiddle.net/YLV9A/

是否有任何想法让它发挥作用? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

你的JSON文件实际上并不是一个JSON文件。它是一个带有被调用函数的javascript文件,它也恰好包含数据数组。我最好的猜测是你正在加载&#34; JSON文件&#34;首先,然后你的另一个文件第二。因此,您在函数存在之前调用该函数,导致错误并停止JS执行。更改脚本的加载顺序,它应该可以正常工作。