如何使用jackson解析对象的一个​​字段?

时间:2016-12-20 06:19:03

标签: java jackson

假设我有一个对象,我想找出一个字段的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有很多子类,我使用反射来获取需要包含在消息签名中的字段。

0 个答案:

没有答案