Вы можете реализовать пользовательское делегирование JsonParser
, которое может быть предоставлено через JsonFactory.
Например:
new ObjectMapper(new MongoInvalidCharacterEscapingJsonFactory());
public class MongoInvalidCharacterEscapingJsonFactory extends JsonFactory { @Override
protected JsonParser _createParser(char[] aData, int anOffset, int aLength, IOContext aContext, boolean anIsRecyclable) throws IOException {
return new MongoInvalidCharacterEscapingParser(super._createParser(aData, anOffset, aLength, aContext, anIsRecyclable));
}
@Override
protected JsonParser _createParser(Reader aReader, IOContext aContext) throws IOException {
return new MongoInvalidCharacterEscapingParser(super._createParser(aReader, aContext));
}
}
class MongoInvalidCharacterEscapingParser extends JsonParserDelegate {
MongoInvalidCharacterEscapingParser(JsonParser aMommy) {
super(aMommy);
}
@Override
public String getCurrentName() throws IOException {
if (hasTokenId(JsonTokenId.ID_FIELD_NAME)) {
return delegate.getCurrentName().replaceAll("\\.", "REPLACEMENTFORPERIOD").replaceAll("\\$", "REPLACEMENTFORDOLLARSIGN");
}
return delegate.getCurrentName();
}
}
Весь импорт из com.fasterxml.jackson.core
и java.io
.