jsonuri v3.4.5
JSON URI
Use URI style methods to operate data.
All operations friendly support Vue-like frameworks.
Use
$ npm install jsonuri --saveimport * as jsonuri from 'jsonuri'
// or
import { get, set, ... } from 'jsonuri' // recommended practice, friendly to tree-shakingExample Data:
{
"menu": {
"id": 123,
"list": [0, 1, 2, 3, 4],
"popup": {
"menuitem": [{
"value": "New",
"onclick": "CreateNewDoc()"
},
{
"value": "Open",
"onclick": "OpenDoc()"
},
{
"value": "Close",
"onclick": "CloseDoc()"
}
]
}
}
}Methods:
get (data, path)
Get the value of the specified data for the path.
Example:
jsonuri.get(data, 'menu/id')
// return 123
jsonuri.get(data, 'menu/popup/menuitem/0/value')
// return 'New'
jsonuri.get(data, 'menu/popup/menuitem/0/value/..')
// {value: "New", onclick: "CreateNewDoc()"}set (data, path, value)
Set the value of the specified data for the path.
Example:
jsonuri.set(data, 'menu/id/', 789)
jsonuri.get(data, 'menu/id')
//789rm (data, path)
Remove the value of the specified data for the path.
Example:
jsonuri.rm(data, 'menu/id')
jsonuri.get(data, 'menu/id') // undefinedmv (data, pathA, pathB, sequence)
Data A moved to target B before or after.
Example:
jsonuri.mv(data, 'menu/list/0', 'menu/list/3')
jsonuri.get(data, 'menu/list') // [1, 2, 3, 0, 4]
[see more](test/spec/mv_spec.js)
jsonuri.set(data, 'menu/list/',[0,1,2,3,4])
jsonuri.mv(data, 'menu/list/0', 'menu/list/3', 'before')
jsonuri.get(data, 'menu/list') // [1, 2, 0, 3, 4]swap (data, pathA, pathB)
Data swap in an array.
Example:
jsonuri.swap(data, 'menu/list/0', 'menu/list/4')
jsonuri.get(data, 'menu/list') // [4, 1, 2, 3, 0]
jsonuri.swap(data, 'menu/list/0', 'menu/list/4')
jsonuri.get(data, 'menu/list') // [4, 1, 2, 3, 0]insert (data, pathA, value, direction)
Insert data into an array that is described in the path.
Example:
jsonuri.insert(data, 'menu/list/0', 9999, 'before') // [9999, 0, 1, 2, 3, 4]up(data, path, gap)
down(data, path, gap)
walk(data, descentionFn, ascentionFn)
Traverse each data of each node and value.
Example:
jsonuri.walk({a:{a1:'x'}}, (value, key, parent, { path }) => {
console.log(value, key, parent, path)
})
// { a1: 'x' } 'a' { a: { a1: 'x' } } 'a'
// x a1 { a1: 'x' } 'a/a1'normalizePath(path1, path2, ...)
Example:
jsonuri.normalizePath('a', 'b') // a/b
jsonuri.normalizePath(['a', 'b', '../'], 'c') // a/cisCircular(obj)
Example:
jsonuri.isCircular({}) // return false
jsonuri.isCircular(window) // return true
var a = {}
jsonuri.set(a, '/b/c/d/e/f/g', a)
jsonuri.isCircular(a) // return true2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago