有哪些库可以在JavaScript中操作JSON数据

有哪些库可以在JavaScript中操作JSON数据,javascript,jquery,linq,json,Javascript,Jquery,Linq,Json,我有一个使用JavaScript从web服务检索JSON的网页。JSON可以包含10条记录或100条记录。在网页上,我想提供一个灵活的界面,允许用户过滤和订购数据。应在浏览器中处理过滤/排序数据。我不希望web服务进行过滤,因为每次操作都需要往返服务器,这似乎效率很低 我有使用JQuery的经验,但解决方案不需要依赖于JQuery 我喜欢的许多选项都与JavaScript中的LINQ有关。下面是基于LINQ的JavaScript库列表;我还添加了库上次更新的日期。是否有行业使用的标准 (201

我有一个使用JavaScript从web服务检索JSON的网页。JSON可以包含10条记录或100条记录。在网页上,我想提供一个灵活的界面,允许用户过滤和订购数据。应在浏览器中处理过滤/排序数据。我不希望web服务进行过滤,因为每次操作都需要往返服务器,这似乎效率很低

我有使用JQuery的经验,但解决方案不需要依赖于JQuery

我喜欢的许多选项都与JavaScript中的LINQ有关。下面是基于LINQ的JavaScript库列表;我还添加了库上次更新的日期。是否有行业使用的标准

  • (2011年1月21日)
  • (2010年4月4日)
  • (2009年6月16日)
无论选择哪个库,都需要支持跨浏览器


我不要求库必须与JQuery兼容,也不要求它必须使用LINQ的语法。但我确实喜欢JQuery和LINQ提供的灵活性。

重要的一点是,JSON数据只是一个JavaScript对象,因此您可以使用任何允许您操作对象的库

我建议将其作为此类问题的通用皮带

这样我们可以很容易地处理数据

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);
另一种方法是使用大型库,例如,为记录创建
主干.Model
,为整个数据集创建
主干.Collection
。然后,您只需对集合调用
.sort
.sortBy
.filter


如果您打算推出主干,那么您将转向客户端MVC,您可以使用整个工具集将数据和UI很好地连接在一起。只需覆盖主干。使用您自己的服务器通信同步。

检查昨天刚刚发布的linq库,它非常强大


如果我没有错的话,JSON的全部要点是它是javascript的原生版本;有点像Perl数据转储和Python pickling。那么您是在寻找进行数据操作的东西还是用于数据操作的UI?Linq for Javascript。。。这不可能很快:)但它确实很有趣。但是对于您的基本前提,在服务器上这样做效率很低,我不确定我是否同意——一般来说。听起来这里的数据并不多,但我认为任何涉及屏幕上合理显示内容以外的内容都最好留给服务器。而且因为这都是算法计算,编码会容易得多。@Bardev,一旦你收到数据,你就可以操纵UI,但不要指望json能做到这一点……排序等应该发生在后端,而不是UI……如果你想操纵这些东西,你应该使用datagrid。我不是在寻找UI工具。我将创建自定义Javascript来执行数据操作。我正在寻找一些库的建议,这些库允许我使用JavaScript更好地管理这些数据。谢谢你的回答。这可能是使用LINQ语法库的一个很好的替代选项。我目前的网站是建立在ASP.NETMVC之上的,所以我理解MVC的概念。我还没有听说过主干网,在做了一些搜索之后,这可能非常适合我的应用程序。@BarDev主干网的主要优点是它轻量级,并且视图完全脱离DOM,因此您可以用自己的方式实现渲染。还有其他MVC解决方案,如。这些都与渲染技术紧密耦合。