组合两个JSON文件以生成有效的JSON模式

时间:2018-11-08 09:06:09

标签: json jsonschema

我有一个JSON文件,该文件定义了网站上托管的在线表单中提出的许多问题。提交在线表单后,将生成另一个JSON文件,其中包含在线表单中提供的所有答案。

第一个JSON文件定义有关问题的属性,例如问题的类型以及是否需要。我想做的是生成一个JSON模式文件,该文件允许根据第一个JSON文件中提供的信息针对问题的答案进行验证。

使用GenSON (python)https://www.jsonschema.net/之类的JSON模式生成器似乎不会产生任何有效的JSON模式,因为它们仅考虑了问题文件。

基本上,我需要问题文件中的信息来处理答案文件的结构,所有这些文件都很好地包装在一个模式中。

有没有办法使这个过程自动化?除了开发自己的自定义程序以准确解析JSON之外,我还希望解析它吗?还是我需要自己将所有问题信息硬编码到模式中?

反正有至少生成一个基本模式供我工作而不是从头开始的事情吗?

下面是文件的两个摘录:

问题JSON

{
    "sections": [
       {
        "id": "1",
        "questions": [
            {
                "id": "1",
                "text": "Question 1",
                "type": "numbers",
                "valid_answers": null,
                "required": "1",
                "enabled": "1"
            },
            {
                "id": "2",
                "text": "Question 2",
                "type": "text",
                "valid_answers": null,
                "required": "1",
                "enabled": "1"
            },
            {
                "id": "3",
                "text": "Question 3",
                "type": "dropdown",
                "valid_answers": "Yes|No",
                "required": "1",
                "enabled": "1"
            }
        ]
    }
  ]
}

回答JSON

{
    "sections": {
        "1": {
            "questions": {
                "1": {
                    "answer": "80035",
                },
                "2": {
                    "answer": "text",
                },
                "3": {
                    "answer": "Yes",
                }
            }
        }
    }
}

如您所见,每个问题的答案保存在一个文件中,而问题的定义保存在另一个文件中。

0 个答案:

没有答案