繁体   English   中英

如何获取所有Jackson / JAXB带注释的属性值?

[英]How to get all Jackson/JAXB annotated property values?

给定具有Jackson注释的实体(模型)类,用于设置列名:

public class GridRowModel {
    private Long maxRegulatedValue;

    @JsonProperty(value="Max Regulated Value")
    public Long getMaxRegulatedValue() {
        return maxRegulatedValue;
    }

    @JsonProperty(value="Fares")
    public Map<String, FareModel> getFares() {
        return fares;
    }
    ...

(也可以使用JAXB注释-例如@XmlElement(name =“ Max Regulated Value”)。

我需要一个getGridColumns方法将返回一个JSON结构,从这个模型+其子模型提取的所有列名(所以这里将返回“最大规定值”和所有@JsonProperty从值FareModel 。)

问题是如何最好地解决这个问题? 已经使用反射进行了讨论,例如method.getAnnotation(JsonProperty.class).value())但是不确定这是否还能奏效,而且看起来也不理想。 一方面,它不会遵守@JsonPropertyOrder (或JAXB中的propOrder )指定的顺序。 我想知道是否有更聪明的方法(也许使用某种适配器?)

最后,列顺序非常重要,因此我为每个模型类添加了注释:

@JsonPropertyOrder({“最大调节值”,“另一个字段”,...})

...然后编写了一种方法来遍历这些(使用反射)和子模型(实际上是固定的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM