Генерация класса Javascript с конструктором, геттером и сеттером из схемы Json

#javascript #node.js

#javascript #node.js

Вопрос:

Может кто-нибудь подсказать, как мы можем сгенерировать класс Javascript, который содержит конструктор, геттеры и сеттеры из полей схемы JSON без каких-либо инструментов.

Пример: у меня есть приведенная ниже схема данных

 "data": {
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256,
                      "title": "Name"
                    },
                    "description": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256,
                      "title": "Description"
                    }
                }
              }
  

Я хочу сгенерировать нижеприведенную модель

 'use strict';
                let name;
                let description;
                var _testSample;
                class SampleModel {

                    constructor() {

                        _testSample = {
                            data: {
                                'name': name,
                                'description': description
                            }
                        };
                    }

                    setName(name) {
                        _testSample.data.name = name;
                    }

                    setDescription(description) {
                        _testSample.data.description = description;
                    }
                }

                module.exports = SampleModel;
  

Не могли бы вы подсказать, есть ли какой-либо движок API / шаблонов, который может генерировать такие классы из схемы JSON?

Может кто-нибудь подсказать, как мы можем сгенерировать класс Javascript, который содержит конструктор, геттеры и сеттеры из полей схемы JSON без каких-либо инструментов.

Я попробовал несколько API, таких как: json-schema-defaults, swagger codegen client и т. Д., Но мне не удалось сгенерировать / достичь этого.

Комментарии:

1. Пожалуйста, обратите внимание: запрос инструментов или библиотек или других сторонних инструментов считается здесь не по теме.

2. не могли бы вы дать какое-нибудь предложение.

Ответ №1:

Да, мы можем сгенерировать модель из JSON / Schema с помощью приведенного ниже API:

json2model!

Приведенный выше API генерирует его на C #, но мы можем настроить шаблон в соответствии с вашими требованиями.

Он использует механизм шаблонов Python Jinja.

jinja -движок для создания шаблонов python!

Ответ №2:

Если вы используете nodejs, просто напишите скрипт, чтобы преобразовать его в нужную вам строку.

 import * as jsonClasses from "./my-json-classes-file";
import * as fs from "fs";

// add each line one at a time
let lines = ["use-string"];
for (let propname in jsonClasses) {
  lines.push(`let %{propname};`);
}

out.push("class MyClass");

... just keep doing this

// join the lines together
const rawFile = lines.join("n");

// write it to a file
fs.writeFileSync("MyFileName.js", rawFile);

  

Тогда, как правило, будет способ убедиться, что этот скрипт выполняется перед запуском / компиляцией / сборкой вашего проекта. Или, может быть, вам придется запускать его вручную.

Дело в том, что базовый узел очень способен принимать json и генерировать текстовый файл.