首頁 > 後端開發 > Golang > 主體

如何在 Go 中將 UTF-8 字串轉換為 []byte 以進行 JSON 解組?

Barbara Streisand
發布: 2024-11-01 10:08:02
原創
683 人瀏覽過

How to Convert UTF-8 Strings to []byte for JSON Unmarshalling in Go?

將UTF-8 字串解組為[]byte

使用JSON 時,解組函數需要[]byte 類型的輸入。但是,我們的資料可以儲存為 UTF-8 字串。本文探討如何將 UTF-8 字串轉換為 []byte 以成功解組。

使用[]byte(s) 轉換

根據Go 規範,可以使用簡單的轉換將字串轉換為[]byte:

<code class="go">s := "some text"
b := []byte(s)</code>
登入後複製

但是,此轉換會建立字串內容的副本,這對於大型字串來說效率較低。

使用io.Reader 進行高效解組

另一種方法是使用從字串建立的io.Reader:

<code class="go">s := `{&quot;somekey&quot;:&quot;somevalue&quot;}`
reader := strings.NewReader(s)
decoder := json.NewDecoder(reader)
var result interface{}
decoder.Decode(&result)</code>
登入後複製

此方法避免了複製字串和對於大輸入效率更高。

不同場景的注意事項

  • 對於小 JSON 文本,使用 []byte(s) 直接轉換為 []byte是可以接受的。
  • 對於大型 JSON 文字或使用 io.Readers 時,使用 strings.NewReader 和 json.NewDecoder 可以提供更好的效率。

綜上所述,轉換 UTF-8 字串to []byte 進行解組涉及直接轉換或使用 io.Reader 來有效處理大輸入。選擇取決於應用程式的特定要求。

以上是如何在 Go 中將 UTF-8 字串轉換為 []byte 以進行 JSON 解組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!