函数 cue.getCueAsSource(); 为我提供了一个漂亮而干净的JSON文件,如下所示:
{
"A" :
{
"B" : [{"value" : "brunos homepage" , "type" : "literal"}]
}
}
我需要将该输出放在getJSON函数的第一个参数中,这样我就可以从该JSON文件中获取所需的任何数据。因为它不会接受函数作为参数,所以我将它放在一个变量中,因为它是一个字符串(我预感到它有问题)。
var cueText = cue.getCueAsSource();
$.getJSON(cueText, function(json) {
$('#meta').html('<p>Title: ' + json.A.B[0].value + '</p>');
});
但它在firebug中抛出了这个错误:
GET { "A" : { "B" : [{"value" : "brunos homepage" , "type" : "literal"}] } }
500 Internal Server Error
有什么问题?有没有其他方法将json输出从某个函数放入getJSON函数?非常感谢。试。
答案 0 :(得分:2)
您不希望$.getJSON()
这样做。 $.getJSON()
是$.ajax()
的别名,用于从服务器检索JSON格式的数据,并在将其提供给您之前将其预先解析为对象。
显然,您已经有了一个JSON字符串,只需要解析它。使用:
var cueText = cue.getCueAsSource();
var cueObject = JSON.parse( cueText );
$('#meta').html('<p>Title: ' + cueObject.A.B[0].value + '</p>');
除IE之外的所有浏览器都内置了标准的JSON API。对于IE,downalod Crockford's json2.js并将其包含在您的页面上。如果存在标准API就足够聪明,如果不存在则提供它。我更喜欢将它包含在jQuery之前,以便jQuery总是使用标准API。