json-extra
gives you a little more power to json files and strings
npm install --save json-extra
or
yarn add json-extra
With 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'); // false
isJsonString(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'); // false
chain(json[, options])
Options:
- type (array | string): Get specific types. Available options:
array
,object
,string
,boolean
ornumber
- 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
,boolean
ornumber
- max (boolean): The maximum of keys to find. Default:
-1
alias unlimited
Example:
import { find, readToObj } from 'json-extra';
const myJsonObejct = readToObj('./package.json')
const foundKeys = find(myJsonObject, 'dependencies')
// returns: [ { key: 'dependencies', type: 'object', data: {} } ]