首頁 > 後端開發 > Golang > 如何在 Go 中從 JSON 解組靈活的布林值(0/1 和 true/false)?

如何在 Go 中從 JSON 解組靈活的布林值(0/1 和 true/false)?

Linda Hamilton
發布: 2024-12-04 17:42:12
原創
640 人瀏覽過

How Can I Unmarshal Flexible Boolean Values (0/1 and true/false) from JSON in Go?

靈活布林值的JSON 解組

處理不一致地將布林值表示為0/1 和false/true 的JSON 資料來源時,標準的encoding/json套件可能無法為解析提供足夠的彈性。為了解決這個問題,我們可以實作一個自訂的 UnmarshalJSON 方法來擴展可接受的布林格式。

在提供的範例中,我們定義了一個名為 MyType 的結構體,其中包含兩個布林欄位:AsBoolean 和 AlsoBoolean。對應的 JSON 輸入包含對應欄位的值「​​true」和「1」。

為了將 0 和 false 解組為布林值,我們建立一個新型別 ConvertibleBoolean 並實作其 UnmarshalJSON 方法。在該方法中,我們檢查輸入資料作為字串,並根據以下條件確定相應的布林值:

  • 如果字串為“1”或“true”,我們將布林值為true 。
  • 如果字串為“0”或“false”,我們將布林值設為 false。
  • 任何其他輸入結果在帶有描述性訊息的錯誤中。

透過自訂 UnmarshalJSON 方法,我們可以擴展預設的 JSON 解組行為並適應輸入 JSON 資料中的非標準布林表示。這種方法允許我們將 JSON 輸入解組為預期的布林值並相應地填入 MyType 結構。

以上是如何在 Go 中從 JSON 解組靈活的布林值(0/1 和 true/false)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板