2011-08-04 89 views
1

函数cue.getCueAsSource();给了我一个非常干净的JSON文件看起来像这样:在getJSON中赋予解析器属性jquery函数

{ 
"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函数中?非常感谢。再次。

回答

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。

+0

是的,我现在明白了,它运作良好! 我也有一个问题,如果主题和谓词名称动态改变,有没有办法访问这个结构中的值? 也许有些函数返回“A”和“B”(在这个例子中),或类似的东西。另外,如果在“A”结构中有几个嵌套谓词。 – 3mpetri

+0

感谢您接受答案!对于你的问题,我真的不知道你在问什么 - 部分是因为我不了解你的术语,部分原因是我没有关于你的系统的外观或者它在做什么的概念。也许你应该开始一个新的问题,你可以更好地解释它,并提供更多的代码和数据样本。 – JAAulde

+0

我正在使用rdf/json语法 - [链接] http://docs.api.talis.com/platform-api/output-types/rdf-json, 所以** A **实际上是“主题“而** B **是”谓词“,问题在于它们正在动态变化。所以,我需要以某种方式从json结构中获取它们,而不是手动输入特定**值**的路径。 'var a =''; //如何获得rfd/json主题? var b =''; //如何获得rdf/json谓词? ('#meta')。append(cueObject [a] [b] [0] .value);' – 3mpetri