假设我有一个对象,我想找出一个字段的JSON值。
public class Foo {
private Bar bar;
public Bar getBar() {
return bar;
}
@JsonProperty("MyBar")
public void setBar(Bar bar) {
this.bar = bar;
}
}
public enum Bar {
BAR1(1), BAR2(2)
private final int code;
BAR(int code) {
this.code = code
}
@JsonValue
public int getCode() {
return code;
}
}
是否可以获得bar
字段的JSON值,如
objectMapper.writeFieldAsString(foo, "bar")
objectMapper.valueToTree(foo).getWithOriginalFieldName("bar").asString()
以下是此案例的真实情况。我需要将Message
对象作为JSON字符串发送。但在发送消息之前,我需要生成此消息的签名,该消息需要此消息的部分字段(并且它们需要以JSON值而不是原始值呈现)。所以我必须预先执行一些jackson解析逻辑才能生成签名(比如处理@JsonFormat和Enum)
更新1
Message
有很多子类,我使用反射来获取需要包含在消息签名中的字段。