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

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

JSON 值類型需要嚴格定義嗎?

JSON 值類型需要嚴格定義嗎?

慕村225694 2021-12-18 15:16:37
我遇到了一個 API,它為“fieldValue”返回不同類型的值,如下所示:{    "id" : 123,    "fieldType" : "text",    "fieldValue" : "some test"}{    "id" : 456,    "fieldType" : "checkbox",    "fieldValue" :     [        {            "checkboxId" : 1,            "name" : "Homer"        },        {            "checkboxId" : 2,             "name" : "Marge"        }    ]}{    "id" : 789,    "fieldType" : "Select",    "fieldValue" : {        "selectId" : 3,        "value" : "Lisa"    }}我正在使用 GSON,它不喜歡“fieldValue”可以是字符串、對象或數組這一事實。我已經編寫了自定義解串器來解析它。我的問題是 JSON 規范是否允許 JSON 對象具有松散定義的值類型,這意味著 fieldValue 類型可以是字符串、對象數組或對象?
查看完整描述

2 回答

?
慕萊塢森

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

JSON規范只提到了JSON對象的語法,而不是語義。所以解析器不會檢查給定的值應該是 A 類型還是 B 類型。它會讀取任何可用的值,如果語法被破壞,它將報告錯誤。由您的應用程序來驗證內容并做出相應的反應。


查看完整回答
反對 回復 2021-12-18
?
回首憶惘然

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

不,它甚至有時可能是一個好政策。JSON 規范本身并沒有說明 JSON 中呈現的對象是什么。這是 API 規范的責任。

您擁有的 API 似乎依賴于fieldType我猜您用來進行自定義反序列化的鑒別器字段。

這也是使用的策略,RuntimeTypeAdapterFactory在您的情況下也可能是很好的解決方案。


查看完整回答
反對 回復 2021-12-18
  • 2 回答
  • 0 關注
  • 266 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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