簡體   English   中英

我怎么能忽略json響應中的字段?

[英]How could I ignore a field in json response?

@Column(name = "password", nullable = false)
@JSonIgnore
private String password;

我在我的模型類中給出了上面的字段,但它對POST方法不起作用。

錯誤:“password”列中的空值違反了非空約束

在getter方法上添加@JsonIgnore。

@Column(name = "password", nullable = false)
private String password;

@JsonIgnore
public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

要么

@JsonProperty(access = Access.WRITE_ONLY)
@Column(name = "password", nullable = false)
private String password;

我解決了這個問題。 這是我的舊代碼: @Column(name = "password", nullable = false)

`@JSonIgnore`

`private String password;` 

我們可以使用JSonProperty代替JSonIgnore。 以下是代碼:

這是新代碼: @Column(name = "password", nullable = false)

@JsonProperty(access = Access.WRITE_ONLY)

private String password;

感謝大家的幫助......

您已將字段設置為nullable = false - 這意味着密碼不能為空,因此某些代碼驗證不允許您將空值傳遞給password

我想你正在混淆請求和回復:

  • 當@JsonIgnore被解析為JSON作為響應對象時,它將忽略該字段。 (例如,對於一些API調用)
  • 如果POST POST應該使用非空密碼創建對象的數據,則該請求必須具有此參數。 @JsonIgnore不會改變任何東西。

如果要在不發送密碼的情況下使POST數據有效,則需要創建一個可以與密碼分開保存的對象。 這可以是一個可保存的超類,其中子類只有密碼,或者只是另一個與另一個擁有密碼字段的類有關系的類。

如果您不想要單獨的類,則必須將密碼添加到請求中,或者將@Column注釋中的nullable屬性更改為true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM