Me7*_*888 53 javascript jquery json
如何使用Javascript或jQuery过滤JSON数据?
这是我的JSON数据:
[{"name":"Lenovo Thinkpad 41A4298","website":"google"},
{"name":"Lenovo Thinkpad 41A2222","website":"google"},
{"name":"Lenovo Thinkpad 41Awww33","website":"yahoo"},
{"name":"Lenovo Thinkpad 41A424448","website":"google"},
{"name":"Lenovo Thinkpad 41A429rr8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ff8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ss8","website":"rediff"},
{"name":"Lenovo Thinkpad 41A429sg8","website":"yahoo"}]
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
obj1 = JSON.parse(jsondata);
Run Code Online (Sandbox Code Playgroud)
现在我只想要包含网站的名称和网站数据等于"雅虎"
Roy*_*mir 59
这是你应该这样做的:(谷歌查找)
$([
{"name":"Lenovo Thinkpad 41A4298","website":"google222"},
{"name":"Lenovo Thinkpad 41A2222","website":"google"}
])
.filter(function (i,n){
return n.website==='google';
});
Run Code Online (Sandbox Code Playgroud)
更好的解决方案:(萨尔曼)
$.grep( [{"name":"Lenovo Thinkpad 41A4298","website":"google"},{"name":"Lenovo Thinkpad 41A2222","website":"google"}], function( n, i ) {
return n.website==='google';
});
Run Code Online (Sandbox Code Playgroud)
http://jsbin.com/yakubixi/4/edit
Ole*_*leg 22
除非您针对旧浏览器并且不想使用填充程序,否则不需要jQuery.
var yahooOnly = JSON.parse(jsondata).filter(function (entry) {
return entry.website === 'yahoo';
});
Run Code Online (Sandbox Code Playgroud)
在ES2015中:
const yahooOnly = JSON.parse(jsondata).filter(({website}) => website === 'yahoo');
Run Code Online (Sandbox Code Playgroud)
ave*_*nda 18
试试这种方式,让您甚至可以通过其他键进行过滤
数据:
var my_data = [{"name":"Lenovo Thinkpad 41A4298","website":"google"},
{"name":"Lenovo Thinkpad 41A2222","website":"google"},
{"name":"Lenovo Thinkpad 41Awww33","website":"yahoo"},
{"name":"Lenovo Thinkpad 41A424448","website":"google"},
{"name":"Lenovo Thinkpad 41A429rr8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ff8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ss8","website":"rediff"},
{"name":"Lenovo Thinkpad 41A429sg8","website":"yahoo"}];
Run Code Online (Sandbox Code Playgroud)
用法:
//We do that to ensure to get a correct JSON
var my_json = JSON.stringify(my_data)
//We can use {'name': 'Lenovo Thinkpad 41A429ff8'} as criteria too
var filtered_json = find_in_object(JSON.parse(my_json), {website: 'yahoo'});
Run Code Online (Sandbox Code Playgroud)
过滤功能
function find_in_object(my_object, my_criteria){
return my_object.filter(function(obj) {
return Object.keys(my_criteria).every(function(c) {
return obj[c] == my_criteria[c];
});
});
}
Run Code Online (Sandbox Code Playgroud)
以下代码对我有用:
var data = [{"name":"Lenovo Thinkpad 41A4298","website":"google"},
{"name":"Lenovo Thinkpad 41A2222","website":"google"},
{"name":"Lenovo Thinkpad 41Awww33","website":"yahoo"},
{"name":"Lenovo Thinkpad 41A424448","website":"google"},
{"name":"Lenovo Thinkpad 41A429rr8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ff8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ss8","website":"rediff"},
{"name":"Lenovo Thinkpad 41A429sg8","website":"yahoo"}]
var data_filter = data.filter( element => element.website =="yahoo")
console.log(data_filter)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
230627 次 |
| 最近记录: |