我需要使用jQuery grep来过滤JSON结果。我的JSON结果如下所示:
var data = { "items":[
{
"Name": "Name 1",
"City": "city1"
},
{
"Name": "Name 2",
"City": "city2"
},
{
"Name": "Name 3",
"City": "cat1"
}
]}
使用Name示例数组过滤此JSON:
var Name= ["Name 1","Name 2"];
答案 0 :(得分:5)
使用 http://manenko.com/2014/12/16/how-to-create-an-input-form-using-uitableview.html 过滤项目数组
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
var data = {
"items": [{
"Name": "Name 1",
"City": "city1"
}, {
"Name": "Name 2",
"City": "city2"
}, {
"Name": "Name 3",
"City": "cat1"
}]
}
var name = ["Name 1", "Name 2"];
var res = data.items.filter(function(v) {
return name.indexOf(v.Name) > -1;
});
document.write('<pre>' + JSON.stringify(res, 0, 3) + '</pre>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
sysclk_enable_module(SYSCLK_PORT_F, PR_USART0_bm);
答案 1 :(得分:0)
我认为这里有同样的问题: [问题] Filtering a json array using jquery grep
但是json数组就像字符串一样,或者你从中得到一个数组,或者你只能像字符串一样访问它。 使用jquery grep重新创建数组,然后通过索引访问它以比较值
答案 2 :(得分:0)
如果你需要使用$ .grep从现有的对象数组中获取字符串数组,那么首先使用$ .grep来过滤对象然后使用$ .map来获取结果对象的特定输出,如下面的代码将帮助你。
使用$ .grep
过滤对象var data = {
"items": [
{
"Name": "Name 1",
"City": "city1"
},
{
"Name": "Name 2",
"City": "city2"
},
{
"Name": "Name 3",
"City": "cat1"
}
]
};
var objret = $.grep(data.items, function (n, i) {
return n.Name == 'Name 1' || n.Name == 'Name 2';
});
现在你在objret变量中有结果对象现在将对象结果转换为使用$ .map的字符串数组输出: -
获取OutPut
var array = $.map(objret, function (value, index) {
return [value.Name];
});
所以在数组中有你需要的输出。