从Java中的JSON Schema中获取可用属性(可能递归)



假设我有以下JSON Schema:

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.com/product.schema.json",
"title": "Draft JSON Schema",
"type": "object",
"properties": {
"person": {
"type": "object",
"properties": {
"details": {
"type": "object",
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"groups": {
"type": "array",
"items": { "$ref": "#/$defs/existing_groups"
}
}
}
}
},
"$defs": {
"existing_groups": [ "Teachers", "Students" ]
},
"book": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"author": {
"type": "string"
}
}
}
}
}

从这个模式中,我想检索定义深度的可用属性和值:

  • 所以给定的是例如person.details,我希望返回first_name, last_name, groups
  • 给定person.details.groups时,应返回Student, Teacher的可能值。
  • 如果给定book.title,则返回空ArraySet

显然,您可以从JsonPathJSON对象获得属性值,但我更想从com.networknt.schema.JsonSchema获得可能的属性(及其可能的值,如果有的话)。

在Java中最简单的方法是什么?

JSON模式用于验证数据。它与数据操作或提取无关。它在任何方面都无法与JSONPath相比

相关内容

  • 没有找到相关文章

最新更新