从json获取唯一对象的数组javascript
{"result":[[{"Image":{"__type":"File","name":"tfss-772aedb6-2767-4935-88f8-ae9280bc512b-expendables.jpg","url":"http://f
iles.parsetfss.com/49a11e0f-0c84-417e-b81b-58f5e97abae9/tfss-772aedb6-2767-4935-88f8-ae9280bc512b-expendables.jpg"},"Tit
le":"The Expendables 3","featured_actors":" Sylvester Stallone, Jason Statham, Jet Li","genre":"Action, Adventure, Thril
ler","imdb_rating":6.3,"plot_summary":"Barney augments his team with new blood for a personal battle: to take down Conra
d Stonebanks, the Expendables co-founder and notorious arms trader who is hell bent on wiping out Barney and every singl
e one of his associates.","running_time_mins":126,"trailer_video_link":"http://www.imdb.com/rg/VIDEO_PLAY/LINK//video/im
db/vi1896197145/","viewer_rating":"18","objectId":"8cTkg769gM","createdAt":"2014-08-16T21:32:28.318Z","updatedAt":"2014-
08-16T21:35:56.217Z","__type":"Object","className":"Movie"}],[{"Image":{"__type":"File","name":"tfss-65707002-e78b-47bd-
9c7a-da072f388e25-deliver.jpg","url":"http://files.parsetfss.com/49a11e0f-0c84-417e-b81b-58f5e97abae9/tfss-65707002-e78b
-47bd-9c7a-da072f388e25-deliver.jpg"},"Title":"Deliver Us From Evil","featured_actors":"Eric Bana, Édgar Ramírez, Oliv
ia Munn","genre":"Crime, Horror, Thriller","imdb_rating":6.5,"plot_summary":"New York police officer Ralph Sarchie inves
tigates a series of crimes. He joins forces with an unconventional priest, schooled in the rites of exorcism, to combat
the possessions that are terrorizing their city.","running_time_mins":118,"trailer_video_link":"http://www.imdb.com/vide
o/imdb/vi1746054425/?ref_=tt_ov_vi","viewer_rating":"15","objectId":"BoCM1zbOvh","createdAt":"2014-08-25T14:27:24.331Z",
"updatedAt":"2014-08-25T19:49:09.910Z","__type":"Object","className":"Movie"},{"Image":{"__type":"File","name":"tfss-772
aedb6-2767-4935-88f8-ae9280bc512b-expendables.jpg","url":"http://files.parsetfss.com/49a11e0f-0c84-417e-b81b-58f5e97abae
9/tfss-772aedb6-2767-4935-88f8-ae9280bc512b-expendables.jpg"},"Title":"The Expendables 3","featured_actors":" Sylvester
Stallone, Jason Statham, Jet Li","genre":"Action, Adventure, Thriller","imdb_rating":6.3,"plot_summary":"Barney augments
his team with new blood for a personal battle: to take down Conrad Stonebanks, the Expendables co-founder and notorious
arms trader who is hell bent on wiping out Barney and every single one of his associates.","running_time_mins":126,"tra
iler_video_link":"http://www.imdb.com/rg/VIDEO_PLAY/LINK//video/imdb/vi1896197145/","viewer_rating":"18","objectId":"8cT
kg769gM","createdAt":"2014-08-16T21:32:28.318Z","updatedAt":"2014-08-16T21:35:56.217Z","__type":"Object","className":"Mo
vie"}]]}
这是使用curl的JSON响应。我试图从数组中检索唯一的对象。如您所见,它最终返回了第一个对象的副本。我已经尝试了很多解决方案,即使是Underscore.js _.uniq方法。我仍然无法达到正确的结果。我将不胜感激任何帮助。提前致谢。从json获取唯一对象的数组javascript
这是我实现
Parse.Promise.when(promises).then(
function() {
var result = [];
_.each(arguments, function(object) {
result.push(object); // each object is an array of movieIds
});
var movies = _.flatten(result);
var uniqueMovies = _.uniq(movies, function(movie){
return movie.Title;
});
response.success(uniqueMovies);
},
function(error) {
response.error(error);
}
);
///
});
我注意到,重复的“图像”对象,你别说加印第二个里面,所以我找到了解决办法通过这个JSON对象进行迭代,并采取仅对每个第一要素迭代。 在这一个看看:http://jsfiddle.net/csdtesting/527oevbc/
var data = {
"result": [
[{
"Image": {
"__type": "File",
"name": "tfss-772aedb6-2767-4935-88f8-ae9280bc512b-expendables.jpg",
"url": "http://f iles.parsetfss.com/49a11e0f-0c84-417e-b81b-58f5e97abae9/tfss-772aedb6-2767-4935-88f8-ae9280bc512b-expendables.jpg"
},
"Title": "The Expendables 31",
"featured_actors": " Sylvester Stallone, Jason Statham, Jet Li",
"genre": "Action, Adventure, Thril ler",
"imdb_rating": 6.3,
"plot_summary": "Barney augments his team with new blood for a personal battle: to take down Conra d Stonebanks, the Expendables co-founder and notorious arms trader who is hell bent on wiping out Barney and every singl e one of his associates.",
"running_time_mins": 126,
"trailer_video_link": "http://www.imdb.com/rg/VIDEO_PLAY/LINK//video/im db/vi1896197145/",
"viewer_rating": "18",
"objectId": "8cTkg769gM",
"createdAt": "2014-08-16T21:32:28.318Z",
"updatedAt": "2014- 08-16T21:35:56.217Z",
"__type": "Object",
"className": "Movie"
}],
[{
"Image": {
"__type": "File",
"name": "tfss-65707002-e78b-47bd- 9c7a-da072f388e25-deliver.jpg",
"url": "http://files.parsetfss.com/49a11e0f-0c84-417e-b81b-58f5e97abae9/tfss-65707002-e78b -47bd-9c7a-da072f388e25-deliver.jpg"
},
"Title": "Deliver Us From Evil",
"featured_actors": "Eric Bana, Édgar Ramírez, Oliv ia Munn",
"genre": "Crime, Horror, Thriller",
"imdb_rating": 6.5,
"plot_summary": "New York police officer Ralph Sarchie inves tigates a series of crimes. He joins forces with an unconventional priest, schooled in the rites of exorcism, to combat the possessions that are terrorizing their city.",
"running_time_mins": 118,
"trailer_video_link": "http://www.imdb.com/vide o/imdb/vi1746054425/?ref_=tt_ov_vi",
"viewer_rating": "15",
"objectId": "BoCM1zbOvh",
"createdAt": "2014-08-25T14:27:24.331Z",
"updatedAt": "2014-08-25T19:49:09.910Z",
"__type": "Object",
"className": "Movie"
}, {
"Image": {
"__type": "File",
"name": "tfss-772 aedb6-2767-4935-88f8-ae9280bc512b-expendables.jpg",
"url": "http://files.parsetfss.com/49a11e0f-0c84-417e-b81b-58f5e97abae 9/tfss-772aedb6-2767-4935-88f8-ae9280bc512b-expendables.jpg"
},
"Title": "The Expendables 3",
"featured_actors": " Sylvester Stallone, Jason Statham, Jet Li",
"genre": "Action, Adventure, Thriller",
"imdb_rating": 6.3,
"plot_summary": "Barney augments his team with new blood for a personal battle: to take down Conrad Stonebanks, the Expendables co-founder and notorious arms trader who is hell bent on wiping out Barney and every single one of his associates.",
"running_time_mins": 126,
"tra iler_video_link": "http://www.imdb.com/rg/VIDEO_PLAY/LINK//video/imdb/vi1896197145/",
"viewer_rating": "18",
"objectId": "8cT kg769gM",
"createdAt": "2014-08-16T21:32:28.318Z",
"updatedAt": "2014-08-16T21:35:56.217Z",
"__type": "Object",
"className": "Mo vie"
}]
]
}
var jsonArray = data.result;
$.each(jsonArray, function(index, data) {
//adds all this values fron the array ,only from and to
//console.log(data[0]);
//alert(data[0].Title);
//console.log(data[0].Title);
document.write("-->" + data[0].Title);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我不明白你的解决方案。另外,您将标题编辑为不同。这是为什么? – user3679294 2014-10-04 21:42:03
我用http://jsonviewer.stack.hu/格式化.i没有改变任何东西。取消注释console.log来查看您将了解的对象 – 2014-10-04 21:44:46
是否存在Underscore.js实现?因为,那就是我受到限制,$(#选项)无法识别。 – user3679294 2014-10-04 21:50:41
你有什么特别的尝试?具体结果是什么?我还建议您格式化数据,以便它是人类可读的。 – 2014-10-04 21:13:04
请格式化您的代码以使其可读。它需要缩进和换行符。 – jfriend00 2014-10-04 21:34:28