查看昨天发布的这个linq库,它非常强大
https://github.com/iabdelkareem/LINQ-To-JavaScript
重要的一点是,JSON数据只是一个JavaScript对象,因此您可以使用任何允许您操作对象的库。
我会推荐 underscore.js 作为这类问题的通用实用带。
这样我们就可以轻松地操作数据
var jsonData = $.getJSON(url); var filtered = _.filter(jsonData, function(val, key) { if (val > 10) return true; }); var sorted = _.sortBy(jsonData, function(val, key) { return order(val); });
过滤和排序依赖于您的数据模型。我建议您使用某种包装器来表示客户端上的数据模型。
var MyModel = function(json) { var data = json; this.filterBySize = function(size) { data = _.filter(data, function(val) { return val > size }); }; ... } var model = new MyModel(json); model.filterBySize(10);
另一种方法是使用像这样的大型库 Backbone.js的 并创造一个 Backbone.Model 为了你的记录和 Backbone.Collection 为您的整个数据集。然后你可以简单地打电话 .sort , .sortBy , .filter 在你的收藏。
Backbone.Model
Backbone.Collection
.sort
.sortBy
.filter
如果您要将骨干带出来,那么您将转向客户端MVC,您可以使用整个工具集将您的数据和UI很好地连接在一起。只是覆盖 Backbone.sync 与您自己的服务器通信。
Backbone.sync