Для полей String, какое бы значение вы ни отправили, оно будет сохранено и будет возвращено, Для других типов данных, таких как DATE, Integer, при преобразовании значения JSON в JAVA, если значение равно Balnk ("") /null, объект-преобразователь преобразует его в null и сохраняет в БД, то же самое будет возвращено в ответ.Если вы хотите, чтобы в ответе было указано «», вы должны написать customSerializer, который в ответ преобразует ноль в «».Вам нужно аннотировать эти поля с помощью
@JsonSerialize (используя = ToStringSerializer.class)
ToStringSerializer.class, который нам нужно написать.
Обходной путь: у меня есть этот обходной путь, вы можете попробоватьи увидим.
открытый класс AssignNullSerializer2 extends JsonSerializer {
public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException
{
// any JSON value you want...
if(value==null) {
jgen.writeString("");
}
}
} В ApplicationConfiguration добавьте приведенный ниже фрагмент.
ObjectMapper mapper = new ObjectMapper();
DefaultSerializerProvider sp=new DefaultSerializerProvider.Impl();
sp.setNullValueSerializer(new AssignNullSerializer2());
mapper.setSerializerProvider(sp);
Он преобразует все нулевые значения вDTO'S / Response Objects to "" / Empty_String Я не нашел элемента управления, чтобы применить его к определенному полю.