亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何驗證param實際上是Json,而不僅僅是字符串

如何驗證param實際上是Json,而不僅僅是字符串

藍山帝景 2023-11-10 15:53:03
我有一個 JsonNode,我接受它作為端點的參數??雌饋硐襁@樣:@ApiModelProperty(value = "data", example = "{}", required = true)@NotNull(message = "data cannot be null")protected JsonNode data;我想創建一個名為 的驗證器@ValidJson。JsonNode 本身將確保提供給它的信息是有效的 json,所以如果我傳遞如下內容:{"data" = "hello",},如果 后面多了一個逗號"hello",就會拋出錯誤。但是我如何確保我沒有得到類似"Hello"JsonNode 的東西,它是有效的 json,因為普通的 String 是有效的 json 表示形式?我首先想檢查字符串是否只是字母數字,如果是,那么我會認為它無效,但顯然有人可以傳遞一個帶有符號的字符串,那就沒問題了。我能想到的最好的解決方案是檢查第一個和最后一個字符分別是{和},JsonNode 會處理其余的事情。但我對 的了解還不夠JsonNode,所以也許這里有人有更好的主意?編輯:為了更具體地表達我想要的,這里有幾個例子:JsonNode 會處理不正確的 Json。我想對我獲取的數據進行一些更嚴格的驗證。我不想接收任何類型的 Json,我想要“真正的”、可序列化的 json,這就是我們所說的 json 時所指的。如果用戶傳遞一個如下所示的字符串:"Hello" "Hello world" "I'm just a random String that isn't in a key:value structure"等等,我想拋出一個錯誤并詢問他們以 key:value 結構格式化的 Json,例如:{   "key": "value"}我正在考慮檢查第一個和最后一個字符串值是否分別為{和},正如我在評論中提到的那樣,但我認為這太“hacky”,也許有更好的方法。
查看完整描述

2 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

Jackson 旨在將 JSON 轉換為 Java 對象。盡管您的用例可以工作,但它很可能不是很有幫助。

如果你真的想使用 JsonNode,Jackson 已經檢查它是否是正確的 JSON,否則它會立即拋出異常,因為它無法將其解析為 JsonNode。

如果你想要一個JSON 對象,你可以簡單地使用 aMap<String, Object>而不是JsonNode。這將處理鍵值部分。


查看完整回答
反對 回復 2023-11-10
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

isObject這就是我正在尋找的功能。



查看完整回答
反對 回復 2023-11-10
  • 2 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號