杰克逊 - 用杰克逊的解串者对单一价值进行反序列化

时间:2017-08-27 20:09:03

标签: java jackson

我有一个Jackson ObjectMapper,带有java.time.Instant(和其他类型)的自定义反序列化器。如何读取单个值而不是完整的JSON blob,例如

objectMapper.readValue("2017-02-01T00:00:00Z", Instant.class)

针对要求用例的评论做出澄清:

我已经将JSON解析为

class MyConfiguration {
    public Instant someField;
    public Map<String, String> otherFields;

    @JsonAnyGetter
    public Map<String, String> any() {
        return otherFields;
    }

    @JsonAnySetter
    public void set(String name, String value) {
        otherFields.put(name, value);
    }
}

现在我有:

interface Something {
    void init(MyConfiguration config)
}

class Something2 implements Something {
    public void init(MyConfiguration config) {
         //Here I would be like the implementation to be able to 
         //get a value from otherFields deserialised to a specified type.
    }
}

我知道我可以使用@JsonSubTypes直接映射它们,但我试图让系统可扩展并且不知道实现。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,在构造的ObjectMapper上使用10

convertValue