el primer método:
@JsonInclude(JsonInclude.Include.NON_NULL)
Agregue esta anotación al nombre del objeto correspondiente a la clase de entidad o al nombre de la clase.
Incluir.ALWAYS atributos están serializados.
Incluir.NON_DEFAULT atributo es el valor predeterminado. No serializado.
Incluir.NON_EMPTY atributo está vacío ("") o NULL.
Incluir.NON_NULL atributo es NULL. No serializado
Como:
private Integer id;
@JsonInclude(JsonInclude.Include.NON_NULL)
private String resourceName;
En este momento, si resourceName es nulo, el atributo no se mostrará.
La desventaja de este método es que si está vacío, toda la propiedad desaparece. Aquí hay una manera de hablar sobre convertir nulo en "".
El segundo método: personalizar un mapeador de objetos
import java.io.IOException;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
/**
* null返回空字符串
*/
@Configuration
public class JacksonConfig {
@Bean
@Primary
@ConditionalOnMissingBean(ObjectMapper.class)
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
SerializerProvider serializerProvider = objectMapper.getSerializerProvider();
serializerProvider.setNullValueSerializer(new JsonSerializer<Object>() {
@Override
public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeString("");
}
});
return objectMapper;
}
}
Tenga en cuenta que este método convertirá el objeto en una cadena vacía cuando la lista, el mapa y la enumeración sean nulos, esto es un inconveniente, utilícelo según sus necesidades.
El tercer método: establecer directamente el valor predeterminado del atributo
Es establecer el valor predeterminado de la propiedad al inicializar la clase de entidad.
Como:
private String name="";