日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java如何忽略过程值_如果值为null,如何告诉Jackson在序列化期间忽略某个字段?...

發布時間:2024/10/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java如何忽略过程值_如果值为null,如何告诉Jackson在序列化期间忽略某个字段?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

回答(16)

2 years ago

mapper.setSerializationInclusion(Include.NON_NULL);

要么:

@JsonInclude(Include.NON_NULL)

class Foo

{

String bar;

}

或者,您可以在getter中使用 @JsonInclude ,以便在值不為null時顯示該屬性 .

2 years ago

如果使用Spring,則為全局配置

@Configuration

public class JsonConfigurations {

@Bean

public Jackson2ObjectMapperBuilder objectMapperBuilder() {

Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();

builder.serializationInclusion(JsonInclude.Include.NON_NULL);

builder.serializationInclusion(JsonInclude.Include.NON_EMPTY);

builder.failOnUnknownProperties(false);

return builder;

}

}

2 years ago

Jackson 2.x使用

mapper.getSerializationConfig().withSerializationInclusion(JsonInclude.Include.NON_NULL);

2 years ago

使用Jackson> 1.9.11和<2.x使用 @JsonSerialize 注釋來執行此操作:

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)

2 years ago

如果要將此規則添加到Jackson 2.6中的所有模型,請使用:

mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

2 years ago

這在 Spring boot 2.0.3 and Jackson 2.0 為我工作

import com.fasterxml.jackson.annotation.JsonInclude;

@JsonInclude(JsonInclude.Include.NON_NULL)

public class ApiDTO

{

// your class variable and

// methods

}

2 years ago

@JsonInclude(JsonInclude.Include.NON_NULL)

@JsonInclude(JsonInclude.Include.NON_EMPTY)

應該管用 .

Include.NON_EMPTY 表示如果屬性的值不為null且不為空,則序列化該屬性 . Include.NON_NULL 表示如果屬性值不為null,則序列化該屬性 .

2 years ago

這已經困擾了我很長一段時間,我終于找到了這個問題 . 問題是由于導入錯誤 . 早些時候我一直在使用

com.fasterxml.jackson.databind.annotation.JsonSerialize

哪個已被棄用 . 只需替換導入

import org.codehaus.jackson.map.annotate.JsonSerialize;

import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;

并用它作為

@JsonSerialize(include=Inclusion.NON_NULL)

2 years ago

在我的情況下

@JsonInclude(Include.NON_EMPTY)

使它工作 .

2 years ago

您可以使用以下映射器配置:

mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);

自2.5以來你可以用戶:

mapper.setSerializationInclusion(Include.NON_NULL);

2 years ago

在Jackson 2.x中,使用:

@JsonInclude(JsonInclude.Include.NON_NULL)

2 years ago

只是為了擴展其他答案 - 如果你需要在每個字段的基礎上控制遺漏空值,請注釋相關字段(或者注釋字段的'getter') .

example - 這里只有 fieldOne 將從json中省略,如果它為null . 無論是否為空,都將包含 fieldTwo .

public class Foo {

@JsonInclude(JsonInclude.Include.NON_NULL)

private String fieldOne;

private String fieldTwo;

}

要將類中的所有空值省略為默認值,請注釋該類 . 如有必要,仍可使用按字段/ getter注釋覆蓋此默認值 .

example - 這里 fieldOne 和 fieldTwo 將分別從json中省略,因為這是類注釋的默認設置 . 但是,由于字段上的注釋, fieldThree 將覆蓋默認值并始終包含在內 .

@JsonInclude(JsonInclude.Include.NON_NULL)

public class Foo {

private String fieldOne;

private String fieldTwo;

@JsonInclude(JsonInclude.Include.ALWAYS)

private String fieldThree;

}

UPDATE

以上是 Jackson 2 . 對于 earlier versions 的 Jackson 你需要使用:

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)

代替

@JsonInclude(JsonInclude.Include.NON_NULL)

如果這個更新很有用,請在下面提到ZiglioUK的答案,它在我更新我的答案之前很久就指出了更新的Jackson 2注釋!

2 years ago

對于Jackson 2.5使用:

@JsonInclude(content=Include.NON_NULL)

2 years ago

如果在 Spring Boot 中,您可以直接通過屬性文件自定義jackson ObjectMapper .

示例 application.yml :

spring:

jackson:

default-property-inclusion: non_null # only include props if non-null

可能的值是:

always|non_null|non_absent|non_default|non_empty

2 years ago

如果您正在嘗試序列化對象列表并且其中一個為null,那么您最終將在json中包含null項,即使

mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

將導致:

[{myObject的},空]

得到這個:

[{myObject的}]

人們可以這樣做:

mapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer() {

@Override

public void serialize(Object obj, JsonGenerator jsonGen, SerializerProvider unused)

throws IOException

{

//IGNORES NULL VALUES!

}

});

提示:如果您正在使用DropWizard,則可以使用environment.getObjectMapper()檢索Jersey使用的ObjectMapper .

2 years ago

你可以設置 application.properties :

spring.jackson.default-property-inclusion=non_null

或 application.yaml :

spring:

jackson:

default-property-inclusion: non_null

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java如何忽略过程值_如果值为null,如何告诉Jackson在序列化期间忽略某个字段?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。