An open API service indexing awesome lists of open source software.

https://github.com/bjorg/jdoc

Turn JSON objects into queryable documents
https://github.com/bjorg/jdoc

Last synced: over 1 year ago
JSON representation

Turn JSON objects into queryable documents

Awesome Lists containing this project

README

          

jDoc (v0.2)
===========
*Turn JSON objects into queryable documents*

jDoc is a lightweight Javascript class which provides querying capabilities over JSON objects.

Features
--------
* recursive pattern matching
* selection filtering
* selection iterating
* document navigation

Using jDoc
-----------
jDoc uses a fluid interface to query for nested objects in a JSON document. Selections can
be refined by filtering and then iterated over.

Example 1: Getting the text value of the first selected node
------------------------------------------------------------
var jdoc = new jDoc(json);

// obtain the text of the first title node inside a book node
var result = jdoc.select('book/title').text();

// or you can use the shorthand form
var result = jdoc.text('book/title');

Example 2: Finding the text value of all selected nodes
-------------------------------------------------------
var jdoc = new jDoc(json);

// obtain the text of all title nodes inside of all book nodes
var result = '';
jdoc.select('book/title').each(function(cur) {
result += 'title: ' + cur.text() + '\n';
});

Selection Methods
-----------------
* jdoc.select(selector)
* jdoc.match(string | regexp | function, [recursive])
* jdoc.attributes()
* jdoc.elements()

Item Methods
------------
* jdoc.exists([selector])
* jdoc.value([selector])
* jdoc.text([selector])

Collection Methods
------------------
* jdoc.any()
* jdoc.first()
* jdoc.next()
* jdoc.each(function(jdoc) [, context])
* jdoc.get(index)
* jdoc.count()
* jdoc.where(function(jdoc) [, context])
* jdoc.union(jdoc)
* jdoc.map(function(jdoc) [, context])

Compatibility
-------------
* Firefox
* IE
* Chrome

Update Log
----------
* 0.1 - Initial release
* 0.2 - Additionanl overloads which take selector; removed jQuery dependency; improved method names:
'map()' instead of 'select()', 'exists()' instead of 'hasValue()', 'value()' instead of 'json()', and 'select()' instead of '$()'