按照JSON模版构建参数

使用loadash提取参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

var lodash = require('lodash')
var buildParams = (data, struct) => {
    if (typeof struct == "string") {
        if (lodash.startsWith(struct, "@")) {
            return lodash.get(data, struct.substring(1))
        }    }
   
    if (typeof struct == 'object' && struct.length == undefined) {
        let retData = {}
        Object.keys(struct).forEach(key => {
            retData[key] = buildParams(data, struct[key])
        })
        return retData
    }
    if (typeof struct == 'object' && struct.length != undefined) {
        let retData = []
        for (var i in struct) {
            retData.push(buildParams(data, struct[i]))
        }
        return retData
    }
    return struct
}

使用该函数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22

var inputJSON = {
    'abc': 32673,
    "666": 767,
    "simple": {
        "kud": 99
    }
}

var template = {
    "abb": true,
    "hhh": "@abc",
    "bbb": {
        "yyy": "@simple.kud"
    },
    "list" : [
        "@abc", "@abc"
    ]
}

let retData = buildParams(inputJSON, template)
console.log(retData)
使用 Hugo 构建
主题 StackJimmy 设计