Package Exports
- dot-json
- dot-json/lib/dot-json.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dot-json) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
dot-json
Easily edit a json file from the CLI or NodeJS.
Install global
npm install -g dot-jsonor local
npm install dot-jsonUse from the CLI
dot-json myfile.json user.name "John Doe"
dot-json myfile.json user.email "john@example.com"
dot-json myfile.json foo..bar baz
dot-json myfile.json address '{"city":"Atlantis"}' --json-valuemyfile.json now looks like
{
"user": {
"name": "John Doe",
"email": "john@example.com"
},
"foo.bar": "baz",
"address": {
"city": "Atlantis"
}
}dot-json myfile.json user.name
John DoeUsage:
dot-json <file> <key-path> Get a value from a json file by key-path
dot-json <file> <key-path> <value> Assign a value at a key-path
dot-json <file> <key-path> --delete Delete a key by key-path
Options:
--indent=<n> Indent with <n> of white space characters [default: auto] [--json-value]
-d --delete Delete the key-path
-j --json-value Parse the input value as a JSON string (to set whole objects or arrays)
-h --help Show this message with options
-v --version Print the version numberQuick tip for editing package.json
Add to .bash_profile:
alias package="dot-json package.json"Use it like this:
package name "my-package"Use it in NodeJS
Initialization
var DotJson = require('dot-json');
var myfile = new DotJson('myfile.json');Writing
asynchronous
myfile.set('user.name', 'John Doe').set('user.email', 'john@example.com').save(function(){
console.log('saved');
});synchronous
myfile.set('user.name', 'John Doe').set('user.email', 'john@example.com').save();myfile.json now looks like
{
"user": {
"name": "John Doe",
"email": "john@example.com"
}
}Reading
asynchronous
myfile.get('user.name', function(value){
// value = 'John Doe'
console.log(value);
});synchronous
var value = myfile.get('user.name');
// value = 'John Doe'
console.log(value);Deleting
asynchronous
myfile.delete('user.name').save(function(){
console.log('saved');
});synchronous
myfile.delete('user.name').save();myfile.json now looks like
{
"user": {
"email": "john@example.com"
}
}