我有点陷入从JSON数组中获取信息的问题。 我知道如何检索信息并解析它们。所以这不是问题。为了从Facebook获取信息,我们使用JQuery,这样做的工作很好。
基本上,我需要的是重构以下链接的JSON输出:https://graph.facebook.com/284521968232566/photos
在标签下,您会看到几个项目。我实际上需要重新排列整个事物以按标签排序。这意味着:
Pauke { [name, source, link], [name, source, link] }
Trompete { [name, source, link], [name, source, link] }
显然,正如您所看到的,顶级项目只有一个项目,但是一旦有更多图片,它就会增长。
这可能不是数组的正确形式,我对你的方法持开放态度。
谢谢
答案 0 :(得分:1)
好的,所以只需迭代data
,然后再遍历data[i].tags.data
,构建一个结果数组,类似于:
var json = {} ; // The json data - this needs to be pre-populated
var result = [] ; // Result Array
var tag ; // Temporary variable for each tag in turn.
for(var i=0;i<json.data.length;i++) {
if( typeof json.data[i].tags != 'undefined'
&& typeof json.data[i].tags.data != 'undefined'
) {
for(var j=0;j<json.data[i].tags.data.length;j++) {
tag = json.data[i].tags.data[j] ;
if(typeof(tag.name != 'undefined') {
if(typeof result[tag.name] == 'undefined') result[tag.name] = [] ;
result[tag.name][result[tag.name].length] = {
'name' : tag.name,
'source' : json.data[i].source,
'link' : json.data[i].link
} ;
}
}
}
}
这会生成一个数组(标签),每个数组都是一个数组(图像),其中一个对象包含每个具有该标签名称的图像的信息。