2013-05-15 5 views
4

Я собираюсь десериализация JSON нулевое значения Java Object пустую строкуJacksonMapper десериализовать Нулевое значение

Я могу сделать мои собственные десериализации, но когда значение Json равно нуль, то не пошло в десериализатор.

Как его десериализовать?

Заранее благодарен!

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 ""; 
} 
+0

Скажите, почему вопрос проголосовал, поэтому я могу улучшить в следующий раз. –

+0

Никто не может ответить на ваш вопрос, если вы не предоставили какой-либо код и/или конфигурацию, связанную с проблемой. – Bart

+0

@Bart, Спасибо, что комментировали, теперь я возвращаю код. –

ответ

2

Может быть, было бы достаточно, чтобы перезаписать метод 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 ""; 
} 

} 
+0

getNullValue устарел –

Смежные вопросы