【问题标题】:JacksonMapper to deserialize null valueJacksonMapper 反序列化空值
【发布时间】:2013-05-15 06:49:10
【问题描述】:

我要将Json空值反序列化为Java Object空字符串

我可以制作我的自定义反序列化器,但是当 Json 值为 null 时,它没有进入反序列化器。

我应该如何反序列化它?

提前致谢!

public class CustomStringDeserializer extends JsonDeserializer<String> {
@Override
public String deserialize(JsonParser jsonparser, DeserializationContext deserializationcontext) throws IOException,
        JsonProcessingException {

    String str = jsonparser.getText();

    try {
        return (str == null) ? "" : str;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }

}

}

   public CustomObjectMapper() {
        SimpleModule _module = new SimpleModule("Module", new Version(1, 9, 10, "FINAL"));
        _module.addDeserializer(String.class, new CustomStringDeserializer());
}


感谢@nutlike
我是这样做的

    @Override
public String getNullValue() {
    return "";
}

【问题讨论】:

  • 告诉我为什么问题被否决,以便我下次改进。
  • 如果您不提供与问题相关的一些代码和/或配置,没有人可以回答您的问题。
  • @Bart,感谢您的评论,我现在添加回代码。
  • 也许覆盖getNullValue()方法就足够了?
  • @nutlike 你是对的!我也只是想通了!

标签: java json jackson


【解决方案1】:

也许覆盖方法getNullValue()就足够了?

public class CustomStringDeserializer extends JsonDeserializer<String> {

@Override
public String deserialize(JsonParser jsonparser,
        DeserializationContext deserializationcontext) throws IOException,
        JsonProcessingException {

    return jsonparser.getText();

}

@Override
public String getNullValue() {
    return "";
}

}

【讨论】:

  • getNullValue 顺便被弃用了
猜你喜欢
  • 2017-03-12
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多