Javascript JSON数组按子值的值重新排列/或筛选
我在从JSON数组中获取信息时遇到了一个问题。 我知道如何检索信息和解析它们。所以这不是问题所在。为了从Facebook获取信息,我们使用JQuery,它做得很好 基本上,我需要重构以下链接的JSON输出: 在标记下,您将看到几个项目。实际上,我需要重新安排整个过程,以便按标签对所有内容进行排序。这意味着:Javascript JSON数组按子值的值重新排列/或筛选,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我在从JSON数组中获取信息时遇到了一个问题。 我知道如何检索信息和解析它们。所以这不是问题所在。为了从Facebook获取信息,我们使用JQuery,它做得很好 基本上,我需要重构以下链接的JSON输出: 在标记下,您将看到几个项目。实际上,我需要重新安排整个过程,以便按标签对所有内容进行排序。这意味着: Pauke { [name, source, link], [name, source, link] } Trompete { [name, source, link], [name,
Pauke { [name, source, link], [name, source, link] }
Trompete { [name, source, link], [name, source, link] }
显然,正如您所看到的,顶级项目只有一个项目,但一旦有更多的图片,它就会增长
这可能不是正确的数组形式,我接受你的方法
谢谢好的,所以只需迭代
数据
,然后迭代数据[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
} ;
}
}
}
}
var json={};//json数据-这需要预先填充
变量结果=[];//结果数组
变量标记;//依次为每个标记指定临时变量。
对于(var i=0;iOK,只需迭代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
} ;
}
}
}
}
var json={};//json数据-需要预先填充
var result=[];//结果数组
var tag;//依次为每个标记指定临时变量。
对于(var i=0;ido你只需要重新排列的tags对象还是修改整个json?我需要用tags来构造它。给你一些背景:json数据是一个乐队在facebook上的相册的输出。在每张图片中,你会看到一个乐队成员,根据他们演奏的乐器进行标记。因此,可能会有人演奏超过一个,它会产生多个标记。因此,乐队成员最终需要出现在网页上的多个部分。你只需要重新排列的标记对象还是修改整个json?我需要它由标记构成。给你一些背景:json数据是乐队facebook上相册的输出。在你会看到的每一张图片都是乐队成员,根据他们演奏的乐器进行标记。因此,可能会有人演奏不止一种乐器,这会产生不止一个标记。因此,乐队成员毕竟需要出现在网页上的不止一个部分。