给定一个带有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 =&#34; Max Regulated Value&#34;)。
我需要一个getGridColumns
方法,它将返回一个JSON结构,其中包含从此模型及其子模型中提取的所有列名称(因此,它将返回&#34; Max Regulated Value&#34;以及所有{{ 1}}来自@JsonProperty
的值。)
问题是如何最好地接近这个?使用反射,例如,像FareModel
这样的东西但不确定这是否会起作用并且它看起来并不理想。首先,它不会尊重method.getAnnotation(JsonProperty.class).value())
(或JAXB中的@JsonPropertyOrder
)指定的顺序。我想知道是否有更聪明的方法(也许使用某种适配器?)
答案 0 :(得分:0)
最后,列顺序变得很重要,所以我用:
注释每个模型类@JsonPropertyOrder({ “最大监管价值”, “另一个领域”, ......})
...然后写了一个方法来循环这些(使用反射)+子模型(实际上是固定的)。