Java Jackson-使用Jackson反序列化单个值';s反序列化程序
我有一个Jackson ObjectMapper,它带有用于java.time.Instant(和其他类型)的自定义反序列化器。如何读取单个值而不是完整的JSON blob,例如Java Jackson-使用Jackson反序列化单个值';s反序列化程序,java,jackson,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<
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);
}
}
我知道我可以使用
@JsonSubTypes
直接映射它们,但我正在尝试使系统可扩展并且不知道实现。回答我自己的问题,在构建的ObjectMapper上使用convertValue
:
objectMapper.convertValue("2017-10-02T01:02:03Z", Instant.class)
回答我自己的问题,在构建的ObjectMapper上使用
convertValue
:
objectMapper.convertValue("2017-10-02T01:02:03Z", Instant.class)
这个用例是什么?如果没有JSON,那么使用JSON库没有多大意义。只需使用@pedromss,我正在解析一个YAML文件,用于具有一些动态属性(映射)的配置,我试图让接口的不同实现使用特定类型提取属性,例如
T getProperty(String prop,Map Map,Class clazz)
。你有一些JSON,你想提取一些字段并只反序列化它?@b因为你的例子没有多大意义。但是,如果你说你有一个yaml文件,也许这就是你想要的::)文本2017-02-01T00:00:00Z
不是有效的JSON文本,因此你不能这样做<代码>“2017-02-01T00:00:00Z”将是一个有效的JSON字符串,因此readValue(“\”2017-02-01T00:00:00Z\”,Instant.class)
可能会起作用。这方面的用例是什么?如果没有JSON,那么使用JSON库没有多大意义。只需使用@pedromss,我正在解析一个YAML文件,用于具有一些动态属性(映射)的配置,我试图让接口的不同实现使用特定类型提取属性,例如T getProperty(String prop,Map Map,Class clazz)
。你有一些JSON,你想提取一些字段并只反序列化它?@b因为你的例子没有多大意义。但是,如果你说你有一个yaml文件,也许这就是你想要的::)文本2017-02-01T00:00:00Z
不是有效的JSON文本,因此你不能这样做<代码>“2017-02-01T00:00:00Z”将是一个有效的JSON字符串,因此readValue(“\”2017-02-01T00:00:00Z\”,Instant.class)
可能会起作用。