2017-07-20 12 views
0

考慮以下POJO:停止(POJO)串行化,如果需要的其中一個字段爲null

import com.fasterxml.jackson.annotation.JsonInclude; 
import com.fasterxml.jackson.annotation.JsonProperty; 
import com.fasterxml.jackson.annotation.JsonInclude.Include; 

@JsonInclude(content=Include.NON_NULL) 
public class User { 
    @JsonProperty(required=true) 
    private String username; 
    private String dob; 
    private String email; 
    //  ... (getters and setters) 

} 

考慮用於上述POJO下面的示例JSON:

{ 
    "username": "foo", 
    "email": "[email protected]", 
    "dob": "12/21/1994" 
} 

,如果我分配一個字段爲null它將在序列化發生時被忽略。

來到我的問題,是有沒有辦法停止序列化(拋出一個異常)時所需的字段是null,因爲目前傑克遜認爲null作爲因而值,這並不違反由@JsonProperty(required=true)規定的合同

我需要username字段總是出現在我的json中。

我已經嘗試使用@NotNulljavax.validation:validation-api,似乎沒有工作。

這是一個彈簧引導1.5.2應用程序。

P.S.
請隨意推薦其他可用的API或編輯問題以使其更好。

回答

-1

你可以使用鏈接,這將幫助你。

mapper.setSerializationInclusion(Include.NON_NULL); 

或:

@JsonInclude(Include.NON_NULL) 
    class User 
    { 
    private String username; 
    private String dob; 
    private String email; 
    ...... 
    ....... 
    } 
+0

序列化會發生。 我想要序列化停止如果用戶名爲空。 –

相關問題