Java物件為空時,不顯示該物件屬性,或者將null轉換為""
第一種方法:
@JsonInclude(JsonInclude.Include.NON_NULL)
將這個註解加在實體類對應的物件名上面,或者類名上面。
Include.ALWAYS 屬性都序列化
Include.NON_DEFAULT 屬性為預設值不序列化
Include.NON_EMPTY 屬性為 空("") 或者為 NULL 都不序列化
Include.NON_NULL 屬性為NULL 不序列化
如:
private Integer id;
@JsonInclude(JsonInclude.Include.NON_NULL)
private String resourceName;
這時候如果resourceName為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="";
相關文章
- 如何將時間字串轉換為時間物件字串物件
- javascript將時間物件轉換為時間戳JavaScript物件時間戳
- javascript如何將時間日期轉換為Date物件JavaScript物件
- java json字串轉換為物件,轉換為listJavaJSON字串物件
- js將時間日期物件轉換為時間日期字元JS物件字元
- 使用反射建立窗體物件時,物件為NULL反射物件Null
- 將一個物件裡所有的空值屬性設定成null物件Null
- getView().scroller.dom為空或者不是物件View物件
- js將時間日期字串轉換為時間日期Date物件JS字串物件
- 時間日期字串轉換為時間物件字串物件
- 波哥學JAVA,定義類 宣告屬性 建立物件 例項化物件 物件呼叫屬性或者方法Java物件
- 物件直接量屬性為數字時如何取值物件
- JavaScript 判斷陣列或者物件是否為空JavaScript陣列物件
- JavaScript將物件轉換為JSON格式字串JavaScript物件JSON字串
- eval()將JSON格式字串轉換為物件JSON字串物件
- js將物件直接量轉換為字串形式JS物件字串
- JavaScript將JSON格式字串轉換為物件JavaScriptJSON字串物件
- java將物件轉為json的方式Java物件JSON
- vue監聽input是否為空(監聽值為物件某個屬性)Vue物件
- java判斷物件是否為空Java物件
- 數字作為物件的屬性物件
- javascript 將變數值作為物件屬性 獲取物件對應的值JavaScript變數物件
- jQuery將類陣列物件轉換為陣列jQuery陣列物件
- js將物件轉換為字串程式碼例項JS物件字串
- Javascript 如何判斷物件為空 {},以及是否包含某個屬性?JavaScript物件
- 將Object物件轉換成Map 屬性名和值的形式Object物件
- eval() JSON轉換為物件JSON物件
- hibernate或者jpa在更新物件時,必須更新物件的全部屬性嗎?物件
- scss中如果將null作為屬性值會刪除此屬性CSSNull
- js為物件新增和刪除屬性JS物件
- “theform._eventtarget 為空或者不是物件”,解決辦法ORM物件
- js將字串轉換為xml物件程式碼例項JS字串XML物件
- jquery實現將字串轉換為json格式物件jQuery字串JSON物件
- javascript將物件轉換為數字程式碼例項JavaScript物件
- C# 將一個物件轉換為指定型別C#物件型別
- jQuery物件轉換為dom物件簡單介紹jQuery物件
- java 將物件集合轉為欄位值的 listJava物件
- 將多列值轉換為一行顯示