declarative operation encapsulation for json
npm install dson.jsbash
npm i --save dson.js
`
`js
var DSONJS= require('dson.js')
var d = D = DSON = dson = DSONJS.DSON
var j = J = jvd = JVD = DSONJS.JVD
var v = null
//define dson
v = dson('games').count()
v = dson().get('name')
//v = dson('name')
//v = dson().get('games[0].name')
//v = dson().select('games[0].name')
//v = dson().draw('games[0].name')
//v = dson().get('games[].name'))
v = dson('games[0]').test({
name : "='fate stay night'",
masters : DSON().count().test('=6')
})
// here your json
var json = {
"name": "圣杯战争",
"about": "Fate",
"games": [
{
"name": "fate stay night",
"masters": [
{
"name": "Shirou Emiya",
"cnName": "卫宫士郎"
}
],
"servants": [
{
"rank": "saber",
"name": "Arutoria Pendoragon",
"cnName": "阿尔托莉雅·潘德拉贡",
"cv": "川澄绫子",
"height": 154,
"weight": 42,
"BWH": "B73 W53 H76",
"remark": "古不列颠传说中的亚瑟王,性格忠诚正直,谦逊有礼,个性认真。"
}
]
}
]
}
(async ()=>{
//do select
var result = await v.doSelect(json)
// do test
var isSuccess = await v.doTest(json)
})
`
如何扩展dson
$3
`js
var DSONJS= require('dson.js')
var d = D = DSON = dson = DSONJS.DSON
var di1 = d('name')
var di2 = d()
var json = {"name": "圣杯战争"}
//reg new method for dsonInstance
di1.reg('hello', (context, yourParam1,yourParam2) => {
// your function can be async or sync, here is sync
//context is inner context object for dson
// yourParam1 yourParam2 ... is your params
//here to set result
context.currentData = context.tempData = ${context.tempData},hello ${yourParam1} ${yourParam2}
//more details in document
})
di1.hello('world' , '!!!!')
//here error
di2.hello('ni','hao')
di1.doSelect(json).then(d=>{ console.log(d)})
//圣杯战争,hello world !!!!
`
$3
`js
var DSONJS= require('dson.js')
var d = D = DSON = dson = DSONJS.DSON
var json = {"name": "圣杯战争"}
//reg new method for DSON
d.reg('hi', async (context, yourParam1,yourParam2) => {
context.currentData = context.tempData = ${context.tempData},hello ${yourParam1} ${yourParam2}
})
var di3 = d('name')
var di4 = d('name')
di3.hi('ni','hao')
di4.hi(1,2,3)
di3.doSelect(json).then(d=>{ console.log(d)})
di4.doSelect(json).then(d=>{ console.log(d)})
//圣杯战争,hi ni hao
//圣杯战争,hi 1 2
`
examples:
1. api.dson.js 扩展dson,使其支持api调用
$3
`js
var DSONJS= require('dson.js')
var d = D = DSON = dson = DSONJS.DSON
D.reg('$test', function(dsonObj, p1){
console.log(p1)
})
d('test2').set('abc' , {hello : 1}).$test('yesyes')
``