Java對象為空時,將null轉換為"" 保存值為空的屬性


 


Java對象為空時,不顯示該對象屬性,或者將null轉換為""
第一種方法:
@JsonInclude(JsonInclude.Include.NON_NULL)
private String resourceName;
Include.ALWAYS 屬性都序列化
Include.NON_DEFAULT 屬性為默認值不序列化
Include.NON_EMPTY 屬性為 空("") 或者為 NULL 都不序列化
Include.NON_NULL 屬性為NULL 不序列化
第二種方法:自定義一個objectmapper
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;
}
}
————————————————

注意但是這個方法會把對象為空,list ,map ,枚舉 為 null的情況下也轉成 空字符串,這是個弊端,根據需求而用吧。

第三種方法:直接設置屬性默認值

就是在初始化實體類的時候設置屬性默認值

如:

private String name="";

———————————————— https://blog.csdn.net/qq_36802726/article/details/88895444

java 查詢時實體不返回字段為空的數據
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class VAuth extends Auth {

}


list轉json時保存值為空的屬性
String param=JSONObject.toJSONString(fhlist, SerializerFeature.WriteMapNullValue);
效果:[{"channel_id":1,"channel_name":"測試通道","channel_Url":null}]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM