Существуют ли какие-либо условия, которые не позволяют модулю регистрироваться в ObjectMapper в Джексоне?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Существуют ли какие-либо условия, которые не позволяют модулю регистрироваться в ObjectMapper в Джексоне?

Сообщение Anonymous »

У меня есть следующий очень простой код для проверки функциональности пользовательского сериализатора в Джексоне. По какой-то причине модуль не регистрируется в ObjectMapper (по крайней мере, я не вижу его регистрации по результатам). Существуют ли какие-либо условия, которые не позволяют модулю зарегистрироваться в ObjectMapper?

Код: Выделить всё

import java.io.IOException;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;

public class TestJacksonCustomSerializer {

public class TheClass {

public String emptyString = null;
public String[] emptyStringArray= null;

public TheClass() {

}

public String getEmptyString() {
return emptyString;
}

public String[] getEmptyStringArray() {
return emptyStringArray;
}
}

public class NullStringJsonSerializer extends JsonSerializer {

@Override
public void serialize(String string, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
System.out.println("Processing value: " + String.valueOf(string));
if (string == null) jsonGenerator.writeString("");
}
}

public static void main(String[] args) throws Exception {

TestJacksonCustomSerializer testJacksonCustomSerializer = new TestJacksonCustomSerializer();

SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(String.class, testJacksonCustomSerializer.new NullStringJsonSerializer());

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(simpleModule);

System.out.println("Number of registered modules: " + String.valueOf(objectMapper.getRegisteredModuleIds().size()));

TheClass theClass = testJacksonCustomSerializer.new TheClass();

System.out.println(objectMapper.writeValueAsString(theClass));

}
}
Выход:

Код: Выделить всё

Number of registered modules: 0
{"emptyString":null,"emptyStringArray":null}
Я использую jackson 2.12.7

Подробнее здесь: https://stackoverflow.com/questions/791 ... bjectmappe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»