问题描述
- $ schema
- $ id
- $ ref
- $ merge
ex
{
**"$schema"**: "http://json-schema.org/draft-07/schema#",**"$id"**: "./field_name_1.json","field_name_title": "some-title","field_name_2": "some value","field_name_3": {
"field_name_4": {
"field_name_5": "some value","field_name_6": "some value","field_name_7": {
"field_name_8": {
"field_name_9": "some value",**"$ref"**: "/json_file_1.json"
},"field_name_": {
**"$ref"**: "/json_file_2.json"
}
},"field_name_10": false
}
},"field_name_11": "some value","field_name_12": "some value","field_name_13": {
"field_name_14": {
**"$ref"**: "/json_file_3.json"
},"session_data": {
**"$ref"**: "/json_file_4.json"
},"event_payload": {
**"$ref"**: "#/field_name_3/field_name_4"
}
},"field_name_15": false
}
如何解析模式中的所有引用,并制作完整的JSON。
主要目标是将解析的架构映射到一个实体,并对架构执行Crud操作
解决方法
有多种方法可以完成此任务,即,实现为代表您替换令牌的简单自动化,它将执行以下步骤:
- 创建将具有令牌-值对的地图(地图,HashMap)
- 通过json库读取json;那是一个如何做的例子-https://www.baeldung.com/java-org-json
- 遍历json并通过java字符串的replace方法替换令牌。
另一种方法是通过外部工具(例如gradle)进行替换,该工具具有专用的插件。在gradle储存库中,有很多插件可以做到这一点-https://plugins.gradle.org/search?term=token+replacement,例如,一个https://github.com/HexoMod-tools/gradle.replace.token.preprocessor.plugin