如何使用Jackson JSON处理器序列化Joda日期时间?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

我如何按照简单模式(如“dd-MM-yyyy”)序列化我的Joda DateTime对象?

我试过了:

@JsonSerialize(using=DateTimeSerializer.class)
private final DateTime date;

我也试过:

ObjectMapper mapper = new ObjectMapper()
    .getSerializationConfig()
    .setDateFormat(df);

提问于
用户回答回答于

在你映射的对象中:

@JsonSerialize(using = CustomDateSerializer.class)
public DateTime getDate() { ... }

在CustomDateSerializer中:

public class CustomDateSerializer extends JsonSerializer<DateTime> {

    private static DateTimeFormatter formatter = 
        DateTimeFormat.forPattern("dd-MM-yyyy");

    @Override
    public void serialize(DateTime value, JsonGenerator gen, 
                          SerializerProvider arg2)
        throws IOException, JsonProcessingException {

        gen.writeString(formatter.print(value));
    }
}
用户回答回答于

Jackson 2.0和Joda模块已经变得非常容易。

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());

Maven依赖:

<dependency>
  <groupId>com.fasterxml.jackson.datatype</groupId>
  <artifactId>jackson-datatype-joda</artifactId>
  <version>2.1.1</version>
</dependency>  

代码和文档:https//github.com/FasterXML/jackson-datatype-joda

二进制文件:http : //repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-joda/

扫码关注云+社区