如何获取@JsonProperty';使用java和jackson api的s值?
在我的项目中的一个例子中,我遇到了一个需要获取JSONPropoerty名称来构建另一个json对象的例子 我有一门pojo课程:如何获取@JsonProperty';使用java和jackson api的s值?,java,jackson,jackson-databind,Java,Jackson,Jackson Databind,在我的项目中的一个例子中,我遇到了一个需要获取JSONPropoerty名称来构建另一个json对象的例子 我有一门pojo课程: public class Records { @JsonProperty("NEWVALUE") private String new; } 现在在另一个类中,我需要使用与我的记录pojo类的@JsonProperty名称关联的JSON属性名称创建JSON对象 我想要像这样的东西 Record rec=new Record(); JsonNode
public class Records {
@JsonProperty("NEWVALUE")
private String new;
}
现在在另一个类中,我需要使用与我的记录pojo类的@JsonProperty名称关联的JSON属性名称创建JSON对象
我想要像这样的东西
Record rec=new Record();
JsonNode tmpNode=new JsonNode();
String key= <somehow get value from rec object i.e. "NEWVALUE">
((ObjectNode) tmpNode).put(key, "abc"));
Record rec=新记录();
JsonNode tmpNode=新的JsonNode();
字符串键=
((ObjectNode)tmpNode.put(key,“abc”);
是否有任何方法可以获取与java字段名关联的json属性名。即便如此,
Jackson
,也有类似于com.fasterxml.Jackson.databind.introspect.JacksonAnnotationIntrospector
,com.fasterxml.Jackson.databind.introspect.annotated
等类。。。如果真的不需要,我建议不要使用。它们有非常复杂的API
,只适用于com.fasterxml.jackson.databind.introspect
中的对象,您需要以某种方式创建这些对象
最简单的解决方案是创建公共静态final
字段并在另一个类中使用:
class Records {
public static final String NEW_VALUE = "NEWVALUE";
@JsonProperty(NEW_VALUE)
private String value;
}
您可以按如下方式使用它:
((ObjectNode) tmpNode).put(Records.NEW_VALUE, "abc"));
或者,只需使用Reflection
从给定字段读取注释
另见: