我正在尝试使用python的schema或json schema来验证带有嵌套字典和列表的字典:
message =
{"pagination":
{"page":1,"perPage":25},
"items":[{"id":1, "settings":[{"name":"name1","value":true}]},
{"id":2 ,"settings":[{"name":"name2","value":true}}]}
}
我需要进行以下验证:
如何使模式表现得更像正则表达式?(例如:我不知道下一条消息的项目可能在“ id”上包含哪些其他元素,但是满足前三个条件-我希望它得到验证)。
例如,以下消息也必须被模式识别:
message =
{"pagination":
{"page":1,"perPage":25},
"items":[{"id":1, "type": "A"},
{"id":2 ,"type": "B"}]}
}
答案 0 :(得分:0)
这听起来像是JSON Schema的完美用例。 JSON模式验证是减法的。所有JSON文档均针对空模式({}
)有效。然后,模式中的每个关键字都将所有JSON文档的集合限制为更有用的东西。因此,您可以声明一个对象必须具有“ id”属性,而不必明确声明允许任何其他属性,因为这只是JSON Schema的正常操作模式。
我几乎为您编写了一个非常简单的模式作为示例,但是随后决定最好将您指向“ Understanding JSON Schema”,这样您就可以自己学习而不是由我来提供解决方案。但是,请阅读该教程后再问一个(更具体的)问题。