Cuando el objeto Java está vacío, las propiedades del objeto no se muestran o el valor nulo se convierte en ""

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="";

 

Supongo que te gusta

Origin blog.csdn.net/qq_36802726/article/details/88895444
Recomendado
Clasificación