Skip to content

manuelstofer/json-pointer

Repository files navigation

json-pointer

Build Statusnpm versionCoverage Status

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

API

varpointer=require('json-pointer');

.get(object, pointer)

Looks up a JSON pointer in an object.

Array of reference tokens, e.g. returned by api.parse, can be passed as a pointer to .get, .set and .remove methods.

varobj={example: {bla: 'hello'}};pointer.get(obj,'/example/bla');

.set(object, pointer, value)

Sets a new value on object at the location described by pointer.

varobj={};pointer.set(obj,'/example/bla','hello');

.remove(object, pointer)

Removes an attribute of object referenced by pointer.

varobj={example: 'hello'};pointer.remove(obj,'/example');// obj ->{}

.dict(object)

Creates a dictionary object (pointer -> value).

varobj={hello: {bla: 'example'}};pointer.dict(obj);// Returns://{// '/hello/bla': 'example'// }

.walk(object, iterator)

Just like:

each(pointer.dict(obj),iterator);

.has(object, pointer)

Tests if an object has a value for a JSON pointer.

varobj={bla: 'hello'};pointer.has(obj,'/bla');// -> truepointer.has(obj,'/non/existing');// -> false

.escape(str)

Escapes a reference token.

pointer.escape('hello~bla');// -> 'hello~0bla'pointer.escape('hello/bla');// -> 'hello~1bla'

.unescape(str)

Unescape a reference token.

pointer.unescape('hello~0bla');// -> 'hello~bla'pointer.unescape('hello~1bla');// -> 'hello/bla'

.parse(str)

Converts a JSON pointer into an array of reference tokens.

pointer.parse('/hello/bla');// -> ['hello', 'bla']

.compile(array)

Builds a json pointer from an array of reference tokens.

pointer.compile(['hello','bla']);// -> '/hello/bla'

pointer(object, [pointer, [value]])

Convenience wrapper around the api.

pointer(object)// bind objectpointer(object,pointer)// getpointer(object,pointer,value)// set

The wrapper supports chainable object oriented style.

varobj={anything: 'bla'};varobjPointer=pointer(obj);objPointer.set('/example','bla').dict();

About

Some utilities for the JSON pointers described by RFC 6901

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 11