Package Exports
- json-library
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (json-library) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
json library
A range of utility modules and functions to work with json or js objects.
currently includes
json pointer implementation
pointer.getandpointer.set, which creates objects on its path andpointer.delete, to remove a property or itemjson query a json pointer supporting glob-pattern
#/usr/**/*/passphrase, filters#/input/*?valid:trueand simple regular expressions#/input/{name-.*}/idjson relation, a relationship definition and utilities to setup and deconstruct relationships between objects
For an up-to-date documentation refer to corresponding unit tests in */test/unit/
Contents
Installation
bower
bower install json-library
will install bower_components/json-library, where by default /dist/JsonLibrary.min.js will be loaded. This includes the complete json-library package, which is exposed to window.JsonLibrary, if not otherwise required. Additional versions included are
/dist/JsonLibrary.pointer.min.jsexposingwindow.JsonPointeronly/dist/JsonLibrary.query.min.jsexposingwindow.JsonQueryonly/dist/JsonLibrary.base.min.jsexposingwindow.JsonLibrary, excluding all relation utilities
npm
npm install json-library
you can also directly require separate modules with require("json-libary/pointer") and
require("json-libary/query")
Usage
For a full API see lib README for an overview and its nested packages for details.
pointer
var pointer = require("json-library").pointer;
// get value of data at json pointer
var value = pointer.get({"a":{"b"}:[{"id":"target"}]}, "#/a/b/0/id"); // target
// add properties by pointer on data
var object = pointer.set({}, "#/a/b/[0]/id", "target"); // {"a":{"b"}:[{"id":"target"}]}
// delete properties or items
var object = pointer.delete({"a":{"b"}:[{"id":"target"}]}, "#/a/b/0"); // {"a":{"b"}:[]}
// join arguments to a valid json pointer
var pointerToTarget = pointer.join("#/a", "#/b", "/0/", "target"); // #/a/b/0/targetFor further details check pointer README
query
var query = require("json-library").query;
// call on each match of the query's matches
query.run(data,
"#/pointer/{regex.*}/**/*?property:hasValue||property:otherValue",
function (value, key, parentObject, jsonPointer) {
});
// return all json pointers of query matches
var matches = query.run(data,
"#/pointer/{^regex.*}/**/*?property:hasValue||property:otherValue",
query.get.POINTER
);For further details and query.get and query.delete check
query README.
relationship
A json relationship defines 1:1, 1:n or n:n relationships between models (json values). This utility will work
non-destructibly on objects or may export transformed relation data. This is very useful for building different
relationships based on a single flat hierarchy (normalized data). Furthermore, relationships are useful for
transforming data. Some Details can be found in
relation README