Skip to content


Subversion checkout URL

You can clone with
Download ZIP
JavaScript implementation of JSON Pointer
JavaScript CoffeeScript
branch: master

JavaScript JSON Pointer

Build Status Dependency Status NPM Version

JavaScript implementation of JSON Pointer (RFC 6901).
Can be used as Node.js package, AMD module or a plain script.


via npm:

$ npm install jsonpointer.js

via Bower:

$ bower install jsonpointer.js

or copy src/jsonpointer.js file from repo.



var jsonpoiner = require('jsonpointer.js');  // XXX: '.js' is part of package name!
console.log(typeof jsonpointer);  // 'object'


require('jsonpointer', function(jsonpointer) {
  console.log(typeof jsonpointer);  // 'object'

<script> tag

<script src="/path/to/jsonpointer.js" type="text/javascript"></script>
   console.log(typeof window.jsonpointer);  // 'object'



get() accepts strings, objects and arrays as evaluation target.

var target = {
  foo: {
    bar: 'foobar'
  baz: [true, false],
  '~': 'tilde',
  '/': 'slash'

var targetJSON = JSON.stringify(target);

jsonpointer.get(target, '/foo');  // {bar: 'foobar'}
jsonpointer.get(target, '/foo/bar');  // 'foobar'
jsonpointer.get(target, '/some/nonexisting/path');  // undefined
jsonpointer.get(target, '/~0');  // 'tilde'
jsonpointer.get(targetJSON, '/~1');  // 'slash'
jsonpointer.get(targetJSON, '/baz');  // [true, false]
jsonpointer.get(targetJSON, '/baz/0');  // true
jsonpointer.get(targetJSON, '/baz/2');  // undefined

Second argument might be omitted, in such case get() returns a function that takes pointer as argument and evaluates it.

var evaluate = jsonpointer.get(target);
evaluate('/foo/bar');  // 'foobar'

There are several cases when .get() throws an exception:

  • First argument is not string, object or array.
  • First argument is string but is not valid JSON string.
  • Seconds argument is not valid JSON Pointer string.
  • Unacceptable token met during evaluation (check section 4 of spec for examples).
  • '-' token used in JSON Pointer string and it's going to be evaluated in Array context.
Something went wrong with that request. Please try again.