从JSON Schema自动生成JavaScript

7
经过长时间的寻找,我没有找到解决我的问题的方法,现在我希望有人能够在这里帮助我。所以基本上我正在寻找一种使用NodeJS自动从JSON(Schema)文件生成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"
        ]
    }
}
}

转换为 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" 
}

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


"name"和"favorite_color"具有相同的配置,但生成方式不同。 - shyam
这并不能帮助我解决我的问题/疑问。 - Stefan C.
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - shyam
现在,我正在动态生成字符串,以反映我的.js文件的内容,并且我认为这是唯一真正实现它的方法。 - Stefan C.
2
有时候这只是大量的打字。在编辑器中找到一个好的查找和替换选项会很有帮助(代码检查和运行测试也很重要,以确保没有遗漏)。你希望通过这样做实现什么目标?所有的.js文件将会做什么?如果我们知道你想要做什么(提供一些更大的上下文),可能会有不同的方法来尝试。 - clay
1个回答

2
我不知道如何将你的JSON转换为JS函数,但是如果您想从JSON模式创建对象,可以使用json-schema-defaults。使用json-schema-defaults创建一个对象后,您可以使用Object.create创建另一个对象,并且您可以向由Object.create函数创建的新对象添加第一级属性。请参考以下链接:json-schema-defaultsObject.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');
                                    }
                            }
                         }
                       );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接