首页 > 解决方案 > JSON 模式到 JSON 对象

问题描述

任何人都可以帮助我创建代码以在 javascript 中使用 JSON Schema 生成示例 JSON。我有一个 JSON 模式作为输入,我必须在 javascript 转换后将 JSON 作为输出。

代码应该是动态的。

例子:

JSON 架构——

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "glossary": {
            "type": "object",
            "properties": {
                "title": {
                    "type": "string"
                },
                "GlossDiv": {
                    "type": "object",
                    "properties": {
                        "title": {
                            "type": "string"
                        },
                        "GlossList": {
                            "type": "object",
                            "properties": {
                                "GlossEntry": {
                                    "type": "object",
                                    "properties": {
                                        "ID": {
                                            "type": "string"
                                        },
                                        "SortAs": {
                                            "type": "string"
                                        },
                                        "GlossTerm": {
                                            "type": "string"
                                        },
                                        "Acronym": {
                                            "type": "string"
                                        },
                                        "Abbrev": {
                                            "type": "string"
                                        },
                                        "GlossDef": {
                                            "type": "object",
                                            "properties": {
                                                "para": {
                                                    "type": "string"
                                                },
                                                "GlossSeeAlso": {
                                                    "type": "array",
                                                    "items": [
                                                        {
                                                            "type": "string"
                                                        }, {
                                                            "type": "string"
                                                        }
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "para", "GlossSeeAlso"
                                            ]
                                        },
                                        "GlossSee": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "ID", "SortAs", "GlossTerm", "Acronym", "Abbrev", "GlossDef", "GlossSee"
                                    ]
                                }
                            },
                            "required": [
                                "GlossEntry"
                            ]
                        }
                    },
                    "required": [
                        "title", "GlossList"
                    ]
                }
            },
            "required": [
                "title", "GlossDiv"
            ]
        }
    },
    "required": [
        "glossary"
    ]
}

JSON 输出——

{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": [
                            "GML", "XML"
                        ]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}

标签: jsonjsonschema

解决方案


有一个来自 JSON Schema 的假数据的开源生成器。你可以使用这个项目作为起点,我猜:

https://json-schema-faker.js.org/


推荐阅读