gpt4 book ai didi

java - Jackson 无法序列化 Joda DateTimeFormatter

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:52:34 24 4
gpt4 key购买 nike

我试图在我的 Spring MVC 3 应用程序中返回一个 JSON,但它对 Joda DateTimeFormatter

失败了
com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.joda.time.format.DateTimeFormat$StyleFormatter and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap["personDay"]->mypackage.PersonDay["dateTimeFormatter"]->org.joda.time.format.DateTimeFormatter["parser"])

看起来我可能需要为此自定义序列化程序,但我不确定从哪里开始。

最佳答案

可以看看here了解更多详情和选项。

基本上,您需要创建一个Serializer,类似于:

public class ItemSerializer extends StdSerializer<Item> {
public ItemSerializer() {
this(null);
}
public ItemSerializer(Class<Item> t) {
super(t);
}
@Override
public void serialize(Item value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeNumberField("id", value.id);
jgen.writeStringField("itemName", value.itemName);
jgen.writeNumberField("owner", value.owner.id);
jgen.writeEndObject();
}
}

然后您可以使用以下方式注释您的类:@JsonSerialize,例如:

@JsonSerialize(using = ItemSerializer.class)
public class Item {
public int id;
public String itemName;
public User owner;
}

关于java - Jackson 无法序列化 Joda DateTimeFormatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39479150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com