我有一个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
直接映射它们,但我试图让系统可扩展并且不知道实现。
答案 0 :(得分:0)
回答我自己的问题,在构造的ObjectMapper上使用10
:
convertValue