[英]jsonschema2pojo: type creation for list of objects
我正在使用 jsonschema2pojo(通过 gradle)从外部 json 模式生成 pojo,该模式具有具有以下定义的属性(在“对象”类型的另一个属性内)(字段名称和值已更改,但所有类型都相同):
"alternativeText": {
"type": "array",
"items": [{
"type": "object",
"required": [
"code",
"language",
"value"
],
"properties": {
"code": {
"type": "integer",
"enum": [1, 2, 3, 4]
},
"language": {
"type": "string",
"enum": ["de-DE", "en-US"]
},
"value": {
"type": "string"
}
}
}],
生成以下 java 代码
@JsonProperty("alternativeText")
@Valid
@NotNull
private List<Object> alternativeText = new ArrayList<Object>();
@JsonIgnore
@Valid
private Map<String, Object> additionalProperties = new LinkedHashMap<String, Object>();
这个接口并不理想,尤其是当消费者要针对“代码”和“语言”的枚举值进行验证时。
当枚举位于数组中时,我们会遇到类似的问题,然后 API 会生成List<Object>
而不是例如List<SomeEnumType>
。
有什么可以配置来改进生成代码的语义吗? 对于具有“枚举”的其他属性(以及 object),它可以正常工作。 似乎枚举数组或对象数组被过度简化了。
看起来您不小心对项目使用了(旧的)元组语法。 尝试替换这个:
"items": [{
有了这个
"items": {
您的项目架构不应位于数组内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.