2010-02-11 57 views
0

有一个简单的JSON解析的问题,想知道如果有人可以迅速发现此语法中的任何错误?JSON不解析使用.getJSON

function getFavs() { 
    $.getJSON('http://www.example.com/scripts/test.json', function(data) { 
     $('#main-content').html(data.foo); 
    }); 
} 

JSON文件如下:

{ 
"foo": "The quick brown fox jumps over the lazy dog.", 
"bar": "ABCDEFG", 
"baz": [ 
    52, 
    97 
    ] 
} 

出于某种原因,它不喜欢 'data.foo' 位。我可以使用静态数据,但绝对不是读取/解析JSON数据。不确定它是否与我使用的URL有关? (该文件已经使用JSONLint验证)

感谢任何线索。

+3

URL是否与调用脚本具有相同的域? – bdl 2010-02-11 06:14:40

回答

0

事情看起来不错,但检查函数实际上是否被调用。如果您有Firebug,请尝试通过逐步运行代码来调试代码。如果你不在不同的地方添加一些alert("this code was run");(在ajax之前,在ajax和回调函数之后)。

+0

好的调用,它肯定会跳到data.foo上(我在'ajax之前'尝试'''ajax'警报之后,并且它没有返回'ajax'之后的返回值 GET请求返回200OK,但是记住hmmm – gleddy 2010-02-11 06:30:17

+1

ajax是异步的,所以如果没有调用'$ .getJSON();'后面的警告,那么你在ajax代码中有一个语法错误,警告应该在第一个之后被调用,并且在一个在回调函数 – Marius 2010-02-11 07:52:47

1

这个问题已解决,似乎是在本地运行,并呼叫一个活动的服务器将是跨域我的身影。现在运行MAMP,它的工作原理应该如上所述。

谢谢!

+1

这是正确的,因此我的原始问题。任何Ajax请求(像这样)必须在同一个域。 – bdl 2010-02-11 07:00:47