json-extragives you a little more power to json files and strings
npm install --save json-extraor
yarn add json-extraWith json-extra you can do such things like read json files and directly parse them into an object or just create a new json file. JSON.parse and JSON.stringify is also attached to json-extra.
Include json-extra as follows:
import * as json from 'json-extra';Example:
import { write, writeSync } from 'json-extra'; // Promises: write('/any/path/you/want', 'filename.json', '{json: "string or object"}') .then(() => console.log('success!')) .catch(err => console.error(err)) // Sync: try { writeSync('/any/path/you/want', 'filename.json', '{json: "string or object"}') console.log('success!') } catch (err) { console.error(err) }isJson(json)
Checks if the input is a valid json object
Example:
import { isJson } from 'json-extra'; isJson({ myJson: '' }); // true isJson('{ myJson: '' }'); // false isJson('nope'); // falseisJsonString(jsonString)
Checks if the given string would be a valid json object
Example:
import { isJsonString } from 'json-extra'; isJsonString('{ myJson: '' }'); // true isJsonString({ myJson: '' }); // false isJsonString('nope'); // falsechain(json[, options])
Options:
- type (array | string): Get specific types. Available options:
array,object,string,booleanornumber - delimiter (string): Changes the delimiter between the chained strings. Default:
'/'
Example:
import { chain } from 'json-extra'; var myJsonString = { myJson: { sub: [ 'components', 'pages', 'services', ], }, }; chain(myJsonString); // returns: [ 'myJson', 'myJson/sub', 'myJson/sub/components', 'myJson/sub/pages', 'myJson/sub/services' ] chain(myJsonString, { type: 'array' }); // returns: [ 'myJson/sub' ] chain(myJsonString, { type: 'string' }); // returns: [ 'myJson/sub/components', 'myJson/sub/pages', 'myJson/sub/services' ]readToObj(path)
Read a json file and returns an obj.
Sync: readToObjSync()
Example:
import { readToObj } from 'json-extra'; // read a json file and return an object readToObj('/path/to/json') .then(data => console.log('My nice data: ', data)) .catch(console.error);write(path, filename[, content])
write a new json file. The content could be a object or a json string.
Sync: writeSync()
Example:
import { write } from 'json-extra'; // writed a new json file write('/any/path/you/want', 'filename.json', '{json: "string or object"}') .then(() => console.log('Written!')) .catch(console.error);find(jsonObject, findString[, options])
Finds a specific key in the json
Options:
- type (array | string): Get specific types. Available options:
array,object,string,booleanornumber - max (boolean): The maximum of keys to find. Default:
-1alias unlimited
Example:
import { find, readToObj } from 'json-extra'; const myJsonObejct = readToObj('./package.json') const foundKeys = find(myJsonObject, 'dependencies') // returns: [ { key: 'dependencies', type: 'object', data: {} } ]