javascript - 哪些库可用于在 JavaScript 中操作 JSON 数据

标签 javascript jquery linq json

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

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

我喜欢的许多选项都与 JavaScript 中的 LINQ 相关。下面是基于 LINQ 的 JavaScript 库的列表;我还添加了图书馆上次更新的日期。业界是否正在使用一个标准?

无论选择哪个库,都需要支持跨浏览器。

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

最佳答案

重要的一点是,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 作用,那么您将转向客户端 MVC,并且您可以使用整个工具集将数据和 UI 很好地连接在一起。只需用您自己的服务器通信覆盖 Backbone.sync 即可。

关于javascript - 哪些库可用于在 JavaScript 中操作 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5531547/

相关文章:

javascript - 取消选中复选框 css3 动画

javascript - 只能在浏览器中运行的包在服务器端渲染中出现错误

javascript - jQuery 等待 Attr 更改

Linq错误- "NotSupportedException: Unsupported overload used for query operator '选择'“

c# - 同时具有 CASE 语句和 SUM 函数的 LINQ 查询

javascript - Offlineaudiocontext.resume() 在移动 Safari 上不会触发

jquery - 检查 jquery 工具提示是否已分配给组件

jquery - 在链接标签中隐藏/显示文本,但在响应模式下不显示字体图标

c# - 获取文件名子串的不同计数

javascript - XMLHttpRequest 抛出错误responseXML = null,但内容仍然出现