- normal json can ONLY carry data at leaf node
- nv-data-container will creat a Object that can carry data on every Node
- its a simplified version of nv-facutil-cfg,easy to use
- npm install nv-data-container
const {data,load,load_to_sdfs} = require("nv-data-container")
var rt = data("RRRR")
rt.a = data('AAAA')
rt.a.x = data('XXXXXXXX')
rt.b = data('BBBB')
rt.c = data('CCCC')
rt.d = data('DDDD')
rt.d.e = data('EEEE')
rt.d.e.f = data('FFFF')
/*
> rt
[RRRR] {
a: [AAAA] { x: [XXXXXXXX] {} },
b: [BBBB] {},
c: [CCCC] {},
d: [DDDD] { e: [EEEE] { f: [FFFF] {} } }
}
>
*/
### relation
> rt.$relation()
{ a: { x: {} }, b: {}, c: {}, d: { e: { f: {} } } }
>
### data
> rt.$data()
{
a: 'AAAA',
'a.x': 'XXXXXXXX',
b: 'BBBB',
c: 'CCCC',
d: 'DDDD',
'd.e': 'EEEE',
'd.e.f': 'FFFF',
'': 'RRRR' //this is data carried by root
}
>
### get set plget plset get_data set_data
> rt.$plget(["a","x"])
'XXXXXXXX'
> rt.$get("a","x")
'XXXXXXXX'
>
> rt.$get_data()
'RRRR'
>
### pls
> rt.$pls()
[
[],
[ 'a' ],
[ 'a', 'x' ],
[ 'b' ],
[ 'c' ],
[ 'd' ],
[ 'd', 'e' ],
[ 'd', 'e', 'f' ]
]
>
###tree sdfs
> rt.$tree()
Tree { type: 'dict', key: null, val: 'RRRR' }
>
> rt.$sdfs()
[
Tree { type: 'dict', key: null, val: 'RRRR' },
_Node { type: 'dict', key: 'a', val: 'AAAA' },
_Node { type: 'dict', key: 'x', val: 'XXXXXXXX' },
_Node { type: 'dict', key: 'b', val: 'BBBB' },
_Node { type: 'dict', key: 'c', val: 'CCCC' },
_Node { type: 'dict', key: 'd', val: 'DDDD' },
_Node { type: 'dict', key: 'e', val: 'EEEE' },
_Node { type: 'dict', key: 'f', val: 'FFFF' }
]
>
###json-like
> rt.$json()
{
relation: { a: { x: {} }, b: {}, c: {}, d: { e: [Object] } },
data: {
a: 'AAAA',
'a.x': 'XXXXXXXX',
b: 'BBBB',
c: 'CCCC',
d: 'DDDD',
'd.e': 'EEEE',
'd.e.f': 'FFFF',
'': 'RRRR'
}
}
>
### load
var jobj = rt.$json()
var d = load(jobj)
[RRRR] {
a: [AAAA] { x: [XXXXXXXX] {} },
b: [BBBB] {},
c: [CCCC] {},
d: [DDDD] { e: [EEEE] { f: [FFFF] {} } }
}
### load to sdfs
> load_to_sdfs(jobj)
[
Tree { type: 'dict', key: null, val: 'RRRR' },
_Node { type: 'dict', key: 'a', val: 'AAAA' },
_Node { type: 'dict', key: 'x', val: 'XXXXXXXX' },
_Node { type: 'dict', key: 'b', val: 'BBBB' },
_Node { type: 'dict', key: 'c', val: 'CCCC' },
_Node { type: 'dict', key: 'd', val: 'DDDD' },
_Node { type: 'dict', key: 'e', val: 'EEEE' },
_Node { type: 'dict', key: 'f', val: 'FFFF' }
]
>
rt.$data rt.$get rt.$get_data
rt.$json rt.$plget rt.$pls
rt.$plset rt.$relation rt.$sdfs
rt.$set rt.$set_data rt.$tree
- nvdata.data(any_thing)
- nvdata.load(o)
- nvdata.load_to_sdfs(o)
- nvdata.ERROR_DICT