JSON DOM
A DOM-like interface for querying complex Javascript objects. (Also a very light wrapper around js-traverse).
Installation
npm install jsondom
Usage
> var jsd = ;> var complex = title: "this is a test" articles: title: "sub title" articles: "this is an article" hello: "it is me you're looking for" ; > jsd;"this is a test" "sub title" > jsd;"this is a test" > jsd; title: 'sub title' articles: 'this is an article' hello: 'it is me you\'re looking for' 'this is an article' > js; title: 'this is a test' articles: Object Object title: 'sub title' articles: 'this is an article'
Methods
getValuesFromPartialPath(tree, key)
/**
* Gets an array of values from a path which ends with the given path fragment.
* This method optionally takes an array to generate the path end data from
* @param {Object} tree Object graph
* @param {Mixed} key String or Array
* @return {Array} Array of values matching partial path
*/
valueFromPath(tree, key_array, getParent)
/**
* Takes an array of nodes to the content location and returns the value located
* at that point. Can we used to return the parent node as well.
* @param {Object} tree Object graph
* @param {Array} key_array An array of keys, traversable from the left
* @param {Boolean} (getParent) Flag to return parent or element. Default: element
* @return {Mixed} The content located at that point in the tree
*/
getPathToKey(tree, key)
/**
* Gets the path to a particular key in the Object
* @param {Object} tree Object graph
* @param {Mixed} key String or RegExp
* @return {Array} Array of decimal separated paths to object suitable to
* use with valueFromKeyPath
*/
getNodesMatching(tree, needle, parent)
/**
* Returns a node of the tree if any of the keys or values in the node match the
* provided criteria
* @param {Object} tree Object graph
* @param {Mixed} needle A string or RegExp describing what to find
* @param {Boolean} (parents) Should it return the parent of the matching element
* @return {Array} An array of parent nodes which have matching children
*/
};
getValuesByKey(tree, key, maxDepth)
/**
* Gets all values from object graph that exist at the specified key name
* @param {Object} tree Object graph
* @param {Mixed} key A RegExp or string for the key you're trying to find
* @param {Integer} (maxDepth) Max recursion depth
* @return {Array} Array of values from matching keys
*/
License
Copyright 2013 Condé Nast. Licensed under the MIT License.