从 JSON Schema 自动生成 JavaScript

Ste*_* C. 7 javascript json jsonschema node.js

经过一小时的搜索,我没有找到解决我的问题的方法,现在我希望有人能够在这里帮助我。

所以基本上我正在寻找的是一种使用 NodeJS 自动从 JSON(架构)文件生成 JavaScript 文件(*.js)的方法。我知道有像 fs.write 这样的东西,但我认为这肯定不适合我的问题。到目前为止,我还没有找到其他方法来创建我的 JavaScript 文件。

基本上我想翻译:

{
"type":"object",
"properties": {
    "name": {
        "type": "string"
    },
    "age": {
        "type": "integer",
        "default":12
    },
    "favorite_color": {
        "type": "string"
    },
    "gender": {
        "type": "string",
        "enum": [
            "male",
            "female"
        ]
    }
}
}
Run Code Online (Sandbox Code Playgroud)

转换为 JavaScript 代码,如:

var data = function() { 

    data.baseConstructor.call(this);
    this.name = ko.observable("");
    this.age = ko.obseravble(12);
    this.favorite_color = ko.observable();
    this.gender = ko.observable(data.genderModes.male);

}

data.genderModes = {

   male: "male",
   female: "female" 
}
Run Code Online (Sandbox Code Playgroud)

有人能给我一个关于我的问题的提示吗?

uza*_*y95 2

我不知道如何将 json 转换为 js 函数,但如果您想从 json 模式创建对象,您可以使用json-schema-defaults。使用 json-schema-defaults 创建一个对象后,您可以使用Object.create创建另一个对象,并且可以将第一级属性添加到由 Object.create 函数创建的新对象。

var a = require('json-schema-defaults')({
"type":"object",
"properties": {
    "name": {
        "type": "string"
    },
    "age": {
        "type": "integer",
        "default":12
    },
  }
});

var b = Object.create(a,{
                         id:{ value:1 }, 
                          f:{ value:function() { 
                                     console.log('run lola run');
                                    }
                            }
                         }
                       );
Run Code Online (Sandbox Code Playgroud)