json-pointer
![Build Status](https://travis-ci.org/manuelstofer/json-pointer.png)
Some utilities for JSON pointers described by RFC 6901
Provides some additional stuff i needed but is not included in node-jsonpointer
Installation
node.js
$ npm install json-pointer
component
$ component install manuelstofer/json-pointer
API
var pointer = require('json-pointer');
pointer(object, [pointer, [value]])
Convenience wrapper around the api.
Calls .get
when called with an object
and a pointer
.
Calls .set
when also called with value
.
If only supplied object
, returns a partially applied function, mapped to the object.
var obj = {
existing: 'bla'
};
pointer(obj, '/new-value/bla', 'expected');
var objPointer = pointer(obj);
objPointer('/existing')
objPointer('/new-value/bla')
.get(object, pointer)
Looks up a json pointer in an object
var obj = {
example: {
bla: 'hello'
}
};
pointer.get(obj, '/example/bla');
.set(object, pointer, value)
Sets a new value on object at the location described by pointer
var obj = {};
pointer.set(obj, '/example/bla', 'hello');
.dict(object)
Creates a dictionary object (pointer -> value)
var obj = {
hello: {bla: 'example'}
};
pointer.dict(obj);
.walk(object, iterator)
Just like:
each(pointer.dict(obj), iterator);
.has(object, pointer)
Tests if an object has a value for a json pointer
var obj = {
bla: 'hello'
};
pointer.has(obj, '/bla');
pointer.has(obj, '/non/existing');
.escape(str)
Escapes a reference token
pointer.escape('hello~bla');
pointer.escape('hello/bla');
.unescape(str)
Unescape a reference token
pointer.unescape('hello~0bla');
pointer.unescape('hello~1bla');
.parse(str)
Converts a json pointer into a array of reference tokens
pointer.parse('/hello/bla');
.compile(str)
Builds a json pointer from a array of reference tokens
pointer.compile(['hello', 'bla']);