根据 XML Schema (XSD) 验证 JSON

Posted

技术标签:

【中文标题】根据 XML Schema (XSD) 验证 JSON【英文标题】:Validate JSON against XML Schema (XSD) 【发布时间】:2016-07-09 06:09:25 【问题描述】:

是否可以在 Java 中使用 XSD 验证 JSON?我有一个接收 JSON 响应的应用程序,我想根据现有的 XSD 对其进行验证。我的应用程序的另一部分使用 XML,这就是为什么如果它们都可以针对现有 XSD 进行验证将是最简单的。

【问题讨论】:

您必须将其转换为 xml 我认为...呃。随处使用 JSON :-) 对于 json,最好生成一个类似于 xsd 的 json shema 并针对它进行验证。有第三方库可以根据模式验证 json,可能存在 Java 等。 【参考方案1】:

不,两者的标准不同。

但如果您真的想依赖 xsd 进行验证,Jsonix Schema Compiler 可以帮助您生成 JSON Schema 来验证您的 XML Schema 中的 json。

【讨论】:

【参考方案2】:

,XML Schema (XSD) 用于验证XML;要验证JSON,请参阅JSON Schema。

我建议手动生成架构,以便完全理解和完全控制约束。但是,这里有一些可以快速启动流程的自动化工具:

要从 JSON Schema 转换为 XSD,请参阅 jsons2xsd。 要从 XSD 转换为 JSON Schema,请参阅 Jsonix Schema Compiler。

相关且非常有用:

从 XML 解析为 JSON(解组)或将 JSON 序列化为 XML (元帅),见JSONIX。 有关实现列表,包括各种语言的验证器,请参阅JSON-Schema Implementations。

【讨论】:

谢谢。根据 JSON 模式进行验证是否容易? 一般来说,当然。请参阅JSON-Schema Implementations 的 Validators 部分。 您能详细说明为什么不能将 XSD 用于 JSON 吗?我想您可以将 JSON 转换为 XML,然后对照 XSD 检查 XML。除了 XML 中的原始文本,JSON 和 XML 只是具有属性和子元素的元素。 @ubiquibacon:当然,任何 XML 都可以使用 XSD 进行验证,包括使用我在答案中提到的方法从 JSON 自动转换的 XML。

以上是关于根据 XML Schema (XSD) 验证 JSON的主要内容,如果未能解决你的问题,请参考以下文章

针对包含 xsd:import without location 的 XSD 验证 XML

在xml中xsd:schema和xs:schema是一个意思吗

Maven 中的 XML DTD/Schema 验证

xml的schema的错误

验证xml是否符合指定xsd

带有Schema的XML没有验证并且给我“元素声明的内容必须匹配”