Как настроить ObjectMapper на игнорирование специальных символов

Всем привет!

У меня есть вот такой пример

import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.GsonBuilder;

import java.io.IOException;

public class Main {

    private static ObjectMapper MAPPER = new ObjectMapper();

    public static void main(String[] args) throws IOException {
        final String string = "\r\n\r\n\r\n";
        
        try {
            MAPPER.readValue(string, Object.class);
        } catch (JsonMappingException e) {
            e.printStackTrace();
        }
        
        final Object gsonResult = new GsonBuilder().create()
                .fromJson(string, Object.class);
        
        System.out.println(gsonResult);
    }

}

Поясню: есть строка string, которая содержит повторяющиеся специальные символы. Далее я пытаюсь распарсить данную строку в объект и ожидаю, что ObjectMapper пропустит эти символы и вернёт мне null, так как строка фактически пустая, но происходит Exception вида:

com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
 at [Source: java.io.StringReader@69a10787; line: 1, column: 1]
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)
    at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:2931)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2873)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
    at ru.ulxanxv.Main.main(Main.java:15)

Ниже в коде я сделал аналогичные действия только при помощи Gson и он вернул мне null пропустив специальные символы..

Как создать аналогичное поведение для ObjectMapper?

Судя по коду из внутренностей ObjectMapper это сделать невозможно так как там всегда выбрасывается это исключение, но может быть всё таки есть возможность :(

protected JsonToken _initForReading(JsonParser jp)
    throws IOException, JsonParseException, JsonMappingException
{
    /* First: must point to a token; if not pointing to one, advance.
     * This occurs before first read from JsonParser, as well as
     * after clearing of current token.
     */
    JsonToken t = jp.getCurrentToken();
    if (t == null) {
        // and then we must get something...
        t = jp.nextToken();
        if (t == null) {
            /* [JACKSON-546] Throw mapping exception, since it's failure to map,
             *   not an actual parsing problem
             */
            throw JsonMappingException.from(jp, "No content to map due to end-of-input");
        }
    }
    return t;
}

Ответы (0 шт):