Skip to content

Repository files navigation

json-extra

Build StatusCoverage Status

json-extra gives you a little more power to json files and strings

Getting started

npm install --save json-extra

or

yarn add json-extra

Usage

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*asjsonfrom'json-extra';

Sync vs. Async

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)}

Methods

isJson()

isJson(json)

Checks if the input is a valid json object

Example:

import{isJson}from'json-extra';isJson({myJson: ''});// trueisJson('{ myJson: '' }');// falseisJson('nope');// false

isJsonString()

isJsonString(jsonString)

Checks if the given string would be a valid json object

Example:

import{isJsonString}from'json-extra';isJsonString('{ myJson: '' }');// trueisJsonString({myJson: ''});// falseisJsonString('nope');// false

chain()

chain(json[, options])

Options:

  • type (array | string): Get specific types. Available options: array, object, string, boolean or number
  • delimiter (string): Changes the delimiter between the chained strings. Default: '/'

Example:

import{chain}from'json-extra';varmyJsonString={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()

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 objectreadToObj('/path/to/json').then(data=>console.log('My nice data: ',data)).catch(console.error);

write()

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 filewrite('/any/path/you/want','filename.json','{json: "string or object"}').then(()=>console.log('Written!')).catch(console.error);

find()

find(jsonObject, findString[, options])

Finds a specific key in the json

Options:

  • type (array | string): Get specific types. Available options: array, object, string, boolean or number
  • max (boolean): The maximum of keys to find. Default: -1 alias unlimited

Example:

import{find,readToObj}from'json-extra';constmyJsonObejct=readToObj('./package.json')constfoundKeys=find(myJsonObject,'dependencies')// returns: [ { key: 'dependencies', type: 'object', data: {}} ]

About

A node module to give you more power for json files

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages