Jquery 过滤到JSON中的特定节点-使用grep或map?
我正在使用themoviedb.org的API检索有关电影的信息。它回来了 我需要用两种不同的方式过滤它,但不一定用同一个回调。在一个实例中,我只需要返回流派,在另一个实例中,我只需要返回Jquery 过滤到JSON中的特定节点-使用grep或map?,jquery,json,jsonp,Jquery,Json,Jsonp,我正在使用themoviedb.org的API检索有关电影的信息。它回来了 我需要用两种不同的方式过滤它,但不一定用同一个回调。在一个实例中,我只需要返回流派,在另一个实例中,我只需要返回size.toLowerCase()==“original”,对于ajax调用,这两个实例都在success中发生,即: $.ajax({ url: "http://api.themoviedb.org/2.1/Movie.getInfo/en/json/API_KEY/" + filmID,
size.toLowerCase()==“original”
,对于ajax调用,这两个实例都在success
中发生,即:
$.ajax({
url: "http://api.themoviedb.org/2.1/Movie.getInfo/en/json/API_KEY/" + filmID,
dataType: "jsonp",
context: document.body,
success: function(data){
...
}
});
grep或map是这里使用的合适方法吗?不管怎样,我怎样才能有效地检索这些信息呢?您可以使用grep筛选出您想要的正确内容并将它们放在另一个数组中,map就是通过对每个元素执行特定的函数来向JSON添加更多的内容
var results = array();
$.ajax({
url: "http://api.themoviedb.org/2.1/Movie.getInfo/en/json/API_KEY/" + filmID,
dataType: "jsonp",
context: document.body,
success: function(data){
data = eval(data);
results = $.grep(data, function(data) {
return data[0].posters.image.size == "original";
});
}
});
听起来像是
$.map
的工作——如果您只需要返回类型,$.map
将允许您仅构建对象片段的数组,而$.grep
将构建完整电影对象的数组。data.posters.size
将返回一个空数组,将其更改为data.posters.image.size
会引发以下错误:TypeError:“undefined”不是对象(评估“data.posters.image.size”)“
现在更好了吗?哈哈,这只是一个获得正确索引的例子,有时候嵌套的东西很难阅读!对不起,没有。什么是eval
?