Javascript JSON数据操作库

时间:2012-03-16 09:02:33

标签: javascript json mobile data-manipulation

我正在开发一个项目,我正在处理相当数量的JSON数据,这些数据被向后和向前传输并由浏览器存储为javascript对象列表。例如:

person: {
   // Primary Key
   key: "id",
   // The actual records
   table: {
       "1": {id: 1, name: "John", surname: "Smith", age: 26},
       "2": {id: 2, name: "Mary", surname: "Brown", age: 19},
       // etc..
   },
   indexes: {
       // Arrays of pointers to records defined above
       "name": [
            {id: 89, name: "Aaron", surname: "Jones", age: 42},
            // etc..
       ]
   }

我发现自己编写了各种索引和排序算法来有效地操作这些数据,我开始认为这种事情必须在以前完成。

我有使用Ext.data.StoreExt.data.Record对象来执行此类数据操作的经验,但我认为它们对于初级开发人员而言过于复杂,我正在开发的项目很小移动应用程序,我们不能只为它添加一个300K +库,所以我需要一些非常小的东西。

如果存在具有以下内容的Javascript JSON操作框架,则有任何想法:

  1. 可以存储
  2. 检索
  3. 排序
  4. 遍历 JSON数据,
  5. 使用清洁API
  6. 最低性能阻力(手机没有很多计算能力)
  7. 小负载,理想情况下<10K?
  8. 我可能会要求太多,但希望有人使用类似这样的东西...我正在寻找的那种东西是 JSON相当于jQuery ,也许它不那么古怪

3 个答案:

答案 0 :(得分:10)

查看jsonQ

它满足了所有针对问题的要求。

  • 可以存储,
  • 检索
  • 并遍历JSON数据,

提供遍历(如find,siblings,parent等)和操作方法,如(value,append,prepend);

  • 排序

提供在jsonQ对象上运行的直接数组排序方法和排序方法。 (两种排序方法递归运行)

  • 使用干净的API

它是一个与JQuery DOM API具有相同的JSON API的试用版。所以如果你熟悉jquery。它容易赶上。有更多完整documentation的apis可用。

  • 最低性能拖动

它为JSON数据的jsonQ初始化创建了一种新格式,该数据在内部用于遍历更有效的数据。 (它就像同时拥有所有循环一样,所以你不必每次循环时循环遍历循环)。

  • 和理想情况下<10K?
  • 的小有效负载

缩小版本为11.7 kb。

答案 1 :(得分:0)

实际上你的问题并不好,我想。从您的示例可以看出,您正在尝试使用JSON模拟类似SQL的存储。也许,你只需要IndexedDB

jsonpath匹配您的确切要求的第4-7点(也可能是3点),JSON全局对象允许1和2只为您调用一次。

此外,恕我直言的要求是不真实的,特别是关于大小的最后一个。

答案 2 :(得分:0)

我认为Lawnchair是您正在寻找的东西。它的主页说它是用移动设备制作的,但我以前没用过它所以我不能对此发表评论。

它是简单的键值存储,虽然您可以定义自己的索引,类似于CouchDB。我没有看到对选择器的支持,但是有一个查询插件可用,很容易选择。

像jQuery这样的东西依赖于sizzle,它是CSS选择器库,在你的情况下不适用。 XPath在我看来是最好的选择,因为它主要用于XML,一种树形结构。由于JSON对象可以表示为树,我找到了JSONSelect,这是一个以“CSS-ish”方式支持JSON Xpath选择器的小型库。

如果你能够以某种方式将JSONSelect插入Lawnchair,我认为你已经找到了一个很好的组合:)