Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript JSON data manipulation library

I'm currently working on a project where I'm dealing with a fair amount of JSON data being transmitted backwards and forwards and stored by the browser as lists of javascript objects. For example:

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..
       ]
   }

I'm finding myself coding all sorts of indexing and sorting algorithms to efficiently manipulate this data and I'm starting to think that this kind of thing must have been done before.

I have experience of using the Ext.data.Store and Ext.data.Record objects for performing this kind of data manipulation, but I think they are overly complex for junior developers and the project I'm working on is a small mobile application where we cant afford to have a 300K+ library added just for the sake of it, so I need something really minimal.

Any ideas if there is a Javascript JSON manipulation framework that has the following:

  1. Can store,
  2. retrieve,
  3. sort,
  4. and iterate through JSON data,
  5. with a clean API,
  6. minimal performance drag (Mobiles dont have a lot of computing power)
  7. and a small payload that is ideally <10K?

I might be asking for too much, but hopefully someone's used something like this... The kind of thing I'm looking for the is the JSON equivalent of jQuery, maybe its not so outlandish.

like image 296
Steven de Salas Avatar asked Mar 16 '12 09:03

Steven de Salas


1 Answers

Take a look on jsonQ

It fullfill all the requirement pointed on question.

  • Can store,
  • retrieve
  • and iterate through JSON data,

Provide traversing (like find,siblings, parent etc) and manipulation method like(value, append, prepend);

  • sort

Provide a direct array sort method and sort method which run on jsonQ object. (Both sort method run recursively)

  • with a clean API

Its a trial to have same API for JSON as jQuery DOM APIs . So if you are familiar with jquery. Its easy to catch up. More over complete documentation of apis is available.

  • minimal performance drag

It create a new format on initialization of jsonQ for a JSON data which is used internally to traverse data which are more efficient. (Its like having all the loops at once, so you don't have to make loop over loop to iterate each time that json).

  • and a small payload that is ideally <10K?

minified version is 11.7 kb.

like image 187
Sudhanshu Yadav Avatar answered Oct 03 '22 20:10

Sudhanshu Yadav