easyjson
Version:
An easy way to manipulate JSON file with add/delete/modify/get json data, support nested data.
122 lines (93 loc) • 2.68 kB
Markdown
Tiny node.js module to manipulate JSON file with add/delete/modify/get json data easily. Also support nested datas.
```
$ npm install easyjson
```
Or
```
$ component install Tinple/easyjson
```
With `EasyJSON` you can simply invoke the exported function to manipulate JSON file.
At first, passing a path to `path` function to choose a JSON file. And `EasyJSON` support the chain call.
Example app.js:
```js
var easyjson = require('easyjson');
// it should output your JSON file
easyjson.path('test')
.express();
```
You can also add, modify or delete a item with your JSON file. And `EasyJSON` support chained invoke.
```js
var easyjson = require('easyjson');
easyjson.path('test')
.add('license', 'MIT')
.express()
.add('blog', 'http://tinple.me')
.express()
.del('version')
.express()
.modify('project', 'EasyJSON')
.express();
```
`easyjson` can get the value of your item with JSON file. Just call `get(key)` to get it.
```js
var easyjson = require('easyjson'),
author = easyjson.path('test').get('author'),
email = easyjson.path('test').get('email');
```
Actually, `EasyJSON` support nested data, that means you
can manipulate your JSON file most effectivly.
```js
var easyjson = require('easyjson').path('test');
/**
* "author": {
* "name": "Tinple"
* }
* ==>
* "author": {
* "name": "Tinple",
* "friend": {
* "name": "Kristine"
* }
* }
*/
easyjson.add('author[friend][name]', 'Kristine');
/**
* push 'path.json' to existed array files
* "files": ["index.js"]
* ==>
* "files": ["index.js", "path.json"]
*/
easyjson.add('files', 'path.json');
// it will delete whole friend object, the same as array
easyjson.del('author[friend]');
// modify the array, only index support
easyjson.modify('files[1]', 'path2.json');
// modify the obj key
easyjson.modify('author[friend][name]', 'Panda');
/** More complex
* "author": {
* "name": "Tinple"
* }
* ==>
* "author": {
* "name": "Tinple",
* "friend": [{
* "name": "Kristine"
* }]
* }
*/
easyjson.add('author[friend][0][name]', 'Kristine');
```
`EasyJSON` will do nothing when you pass a nonexistent
key to `modify()` and `del()`. As for `add(key, value)`, `EasyJSON` will judge whether the key exists firstly. If not, it will added normally.
If it has already existed, there are two situations that
the key should be treated.
1. The key is an array, then the value will be pushed.
2. The key is other type, like Object or String, then `EasyJSON` do nothing.
MIT