簡體   English   中英

Java-用戶在布爾中輸入字符串時的驗證

[英]Java - Validation when user enters string into boolean

當前正在使用Web服務並進行驗證,當用戶在JSON塊中輸入布爾值時,希望收到更好的錯誤消息:

JSON:

{
      "name": "GAWA",
      "isFree": true
}

如預期的那樣,因為滿足布爾值的標准,所以工作正常。 但是,如果用戶輸入字符串,就會出現問題。

{
      "name": "GAWA",
      "isFree": "gwge"
}

當前錯誤消息:

"message": "Can not deserialize value of type java.lang.Boolean from String \"rwtrt\": only \"true\" or \"false\" recognized\n at [Source: java.io.PushbackInputStream@7e9abd26; line: 14, column: 2] (through reference chain: com.velatt.dartentitlements.dto.SiteDTOExternal[\"useAppEntitlements\"])"
  },

我認為這是一條if語句,大致如下:

 if (isFree ...) {
            throw new IllegalArgumentException("Cannot create a person without a valid boolean");
        }

我可以提出什么條件的幫助?

編輯:我不希望更改它,所以如果他們輸入true,它將被轉換為布爾值,我只是想拒絕所有字符串,以獲取更好的錯誤消息。

您需要檢查對象isFree是否為String類的實例。

嘗試這個:

if (isFree instanceof String) {
    throw new IllegalArgumentException("Cannot create a person without a valid boolean");
}

它將拒絕除布爾值以外的所有其他數據類型

if (isFree instanceof Boolean == false){
    throw new IllegalArgumentException("Cannot create a person without a valid boolean");
}

暫無
暫無

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

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