Как сериализовать в пустой строке Джексона Джсона пустую строку - PullRequest
12 голосов
/ 25 апреля 2011

Мне нужен Джексон json (1.8), чтобы сериализовать строку Java NULL в пустую строку. Как ты делаешь это? Любая помощь или предложение с благодарностью.

Спасибо

1 Ответ

10 голосов
/ 03 мая 2011

См. Документы на пользовательских сериализаторах ;есть пример именно этого, работает для меня.

В случае перемещения документов, позвольте мне вставить соответствующий ответ:

Преобразование нулевых значений во что-то еще

(как пустые строки)

Если вы хотите вывести какое-то другое значение JSON вместо нуля (главным образом потому, что некоторые другие инструменты обработки предпочитают другие постоянные значения - часто пустую строку), все немного сложнее, поскольку номинальный тип может быть чем угодно;и хотя вы можете зарегистрировать сериализатор для Object.class, он не будет использоваться, если не будет более конкретного сериализатора для использования.

Но есть особая концепция «нулевого сериализатора», которую вы можете использовать следующим образом:

// Configuration of ObjectMapper:
{
    // First: need a custom serializer provider
   StdSerializerProvider sp = new StdSerializerProvider();
   sp.setNullValueSerializer(new NullSerializer());
   // And then configure mapper to use it
   ObjectMapper m = new ObjectMapper();
   m.setSerializerProvider(sp);
}

// serialization as done using regular ObjectMapper.writeValue()

// and NullSerializer can be something as simple as:
public class NullSerializer extends JsonSerializer<Object>
{
   public void serialize(Object value, JsonGenerator jgen,
SerializerProvider provider)
       throws IOException, JsonProcessingException
   {
       // any JSON value you want...
       jgen.writeString("");
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...