我需要将
java.util.Map
实例映射到 org.jsonschema2pojo
maven 插件用来创建 POJO 的 JSON 模式。
我没有找到一个好的简单的解决方案。
有人可以帮助我吗?
这是我实际的 json-schema 文件
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Response",
"description": "A Response object",
"type": "object",
"properties": {
"result": {
"type": "string",
"description": "describes response status"
},
"msg": {
"type": "string",
"description": "user msgs"
}
},
"required": ["result"],
"additionalProperties": false
}
我需要添加一个字段
"errors"
,将其转换为Java中的java.util.Map<String, String>
。
据我所知
additionalProperties
可以完成这项工作。
例如,您可以声明类型为 Map<String, Object>
的错误属性(现在是 yaml):
...
properties:
errors:
type: object
additionalProperties:
type: object
您无需指定键的类型,因为这描述了一个 json 文档,该文档自然将字符串作为对象的键。
代替
type: object
,您还可以对 type: string
执行 Map<String, String>
操作,或者如果您在该映射中拥有自己的类型作为值,则引用另一个定义。
这是一个旧的东西,但如果您正在寻找地图属性而不是选择
additionalProperties
选项,那么它会很方便:
{
"type" : "object",
"properties" : {
"myProperty" : {
"existingJavaType" : "java.util.Map<String,Integer>",
"type" : "object"
}
}
}
这会给你:
@JsonProperty("myProperty")
private Map<String, Integer> myProperty;
参见现有Java类型