【发布时间】:2020-01-29 13:09:13
【问题描述】:
我正在使用 jackson 库,并且遇到了一种情况,我想在序列化/反序列化时使用 objectmapper 禁用 @JsonFormat 注释。
我的 Api 代码在第 3 方库中,因此我无法删除/添加任何注释,因此 objectMapper 是唯一的选择。
API 类:
public class ApiClass {
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'")
private DateTime time;
}
我的代码:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.configure(Feature.ALLOW_COMMENTS, true);
objectMapper.configure(MapperFeature.AUTO_DETECT_IS_GETTERS, true);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
objectMapper.setSerializationInclusion(Include.NON_ABSENT);
objectMapper.registerModule(new JodaModule());
objectMapper.registerModule(new JavaTimeModule());
String str = " {\"time\": \"2012-05-01\"}";
ApiClass msg = objectMapper.readValue(str, ApiClass.class);
我希望此转换成功发生。
目前我得到:com.fasterxml.jackson.databind.JsonMappingException: Invalid format: "2012-05-01" is too short
请帮帮我。
提前致谢
【问题讨论】:
-
能否详细说明您遇到的具体问题?谢谢!
-
@RobStreeting:更新了上述问题。
-
我试图复制这个..你能告诉你 API 类中 DateTime 的导入语句是什么吗?
-
@NawnitSen : 导入 org.joda.time.DateTime;
标签: java jackson jackson-databind jackson2 jackson-dataformat-xml