【问题标题】:Automatically generate JavaScript from JSON Schema从 JSON Schema 自动生成 JavaScript
【发布时间】:2025-11-21 08:45:01
【问题描述】:

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

所以基本上我正在寻找的是一种使用 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" 
}

有人能给我提示一下我的问题吗?

【问题讨论】:

  • namefavorite_color 具有相同的配置但生成方式不同
  • 这对我的问题/疑问没有帮助
  • 这是一个观察结果,以便您可以阐明生成规则。顺便说一句,到目前为止你做了什么不适合你的问题?
  • 好吧,现在我要动态生成反映我的 .js 文件内容的字符串,我认为这是真正做到这一点的唯一方法
  • 有时这只是大量的打字。在您的编辑器中找到一个好的查找和替换选项会有很大帮助(就像检查代码和运行测试以确保您没有遗漏任何内容一样)。你希望通过这个实现什么?所有 .js 文件会做什么?如果我们知道您要做什么(提供一些更大的背景),可能会尝试另一种方法。

标签: javascript json node.js jsonschema


【解决方案1】:

我不知道如何将你的 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');
                                    }
                            }
                         }
                       );

【讨论】: