Gson сериализует значение null, только если значение соответствует определенному шаблонуJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Gson сериализует значение null, только если значение соответствует определенному шаблону

Сообщение Anonymous »

Представьте, что у меня есть объект, который выглядит так:

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

@Getter
@Setter
static class MyObject {
private String firstName;
private String lastName;
private long salary;
}
и тогда у меня есть:

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

private static final String KEEP_ME = "$$$___KEEP_ME___$$$";

MyObject obj = new MyObject();
obj.setFirstName(KEEP_ME);
obj.setLastName(null);
obj.setSalary(1000);
Я хочу создать собственный сериализатор, который будет удалять любые значения NULL и сохранять поля, равные KEEP_ME, с нулевым значением. Ожидаемый результат должен выглядеть следующим образом:

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

{"firstName":null,"salary":1000}
Мой сериализатор выглядит так:

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

static class NullStringSerializer implements JsonSerializer {

private static final String KEEP_ME = "$$$___KEEP_ME___$$$";

@Override
public JsonElement serialize(String src, Type typeOfSrc, JsonSerializationContext context) {
if (src == null) {
return JsonNull.INSTANCE;
}

if (KEEP_ME.equals(src)) {
return JsonNull.INSTANCE;
}

return context.serialize(src, typeOfSrc);
}
}
и

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

Gson gsonBuilder = newDefaultGson()
.registerTypeAdapter(String.class, new NullStringSerializer())
.create();
gsonBuilder.toJson(obj);
но это дает мне:

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

{"salary":1000}
Какое решение этой ситуации, пожалуйста?

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

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

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

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

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

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

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