Java 如何访问JsonPropertyOrder
我有一个定义了Java 如何访问JsonPropertyOrder,java,json,jackson,Java,Json,Jackson,我有一个定义了JsonPropertyOrder的POJO,在另一个类中,我需要为该POJO检索该顺序,我如何才能做到这一点 示例POJO: @JsonPropertyOrder({"field1", "field2", "field3"}) public class ReportRow extends Row { private String field1; private String field2; private String field3; } 我可以试试这样的方法吗:R
JsonPropertyOrder
的POJO,在另一个类中,我需要为该POJO检索该顺序,我如何才能做到这一点
示例POJO:
@JsonPropertyOrder({"field1", "field2", "field3"})
public class ReportRow extends Row {
private String field1;
private String field2;
private String field3;
}
我可以试试这样的方法吗:
ReportRow.getJsonPropertyOrder()
?如果正确,可以获取类的注释信息,然后访问它的属性:
JsonPropertyOrder jpo = ReportRow.class.getAnnotation(JsonPropertyOrder.class);
String[] propertyOrder = jpo.value();
在这种情况下,您可以在Jackson源代码中找到taget属性。您走对了方向,可以获取类的注释信息,然后访问其属性:
JsonPropertyOrder jpo = ReportRow.class.getAnnotation(JsonPropertyOrder.class);
String[] propertyOrder = jpo.value();
在这种情况下,您可以在Jackson源代码中找到taget属性。添加到提供的答案中,您可以通过Jackson获得注释:
ObjectMapper mapper = new ObjectMapper();
JavaType type = mapper.getTypeFactory().constructType(ReportRow.class);
BeanDescription desc = mapper.getSerializationConfig().introspect(type);
JsonPropertyOrder jpo = desc.getClassAnnotations().get(JsonPropertyOrder.class);
除了提供的答案之外,您还可以通过Jackson访问注释:
ObjectMapper mapper = new ObjectMapper();
JavaType type = mapper.getTypeFactory().constructType(ReportRow.class);
BeanDescription desc = mapper.getSerializationConfig().introspect(type);
JsonPropertyOrder jpo = desc.getClassAnnotations().get(JsonPropertyOrder.class);
通过杰克逊?所以这个我们不需要使用反射包?没错。没有思考。尽管如Jackson在问题中所建议的那样,如果确实存在
getJsonPropertyOrder()
,那就好了?所以这个我们不需要使用反射包?没错。没有思考。尽管如问题中所建议的那样,如果确实存在getJsonPropertyOrder()
,那就太好了