@hyperjump/json
Version:
JSON parser and stringifier with JSON Pointer support
60 lines (46 loc) • 1.1 kB
Markdown
Json
====
This is a reimplementation of the builtin `JSON` object to add JSON Pointer
parameters to the "reviver" and "replacer" functions. Other than the added
parameters, the interface and behavior is the same as the original.
Installation
------------
Includes support for node.js (ES Modules, TypeScript) and browsers.
```bash
npm install /json
```
Usage
-----
```javascript
import * as Json from "@hyperjump/json";
const subject = `{
"type": "object",
"properties": {
"foo": { "type": "string" },
"bar": { "$ref": "#/$defs/number" }
},
"required": ["foo", "bar"],
"$defs": {
"number": { "type": "number" }
}
}`;
const result = Json.parse(subject, (key, value, pointer) => {
console.log("REVIVER", pointer, key, JSON.stringify(value));
return value;
});
const json = Json.stringify(result, (key, value, pointer) => {
console.log("REPLACER", pointer, key, value);
return value;
}, " ");
```
Contributing
------------
### Tests
Run the tests
```bash
npm test
```
Run the tests with a continuous test runner
```bash
npm test -- --watch
```