首頁  >  文章  >  後端開發  >  如何在 Go 中將 UTF-8 字串轉換為位元組數組以進行 JSON 解組?

如何在 Go 中將 UTF-8 字串轉換為位元組數組以進行 JSON 解組?

Patricia Arquette
Patricia Arquette原創
2024-10-30 13:27:04260瀏覽

How to Convert UTF-8 Strings to Byte Arrays for JSON Unmarshaling in Go?

將UTF-8 字串轉換為位元組數組以進行JSON 解組

要解組JSON 字串,必須提供一個位元組數組([]byte) 作為指定函數的輸入。為此,本文探討了將 UTF-8 字串轉換為 []byte 的方法。

方法1:直接型別轉換

Go語言允許使用簡單的型別轉換將字串直接轉換為[]byte

s := "some text"
b := []byte(s) // b is of type []byte

此方法受到語言規範的認可,其中規定將字串轉換為[]byte 產生包含字串各個位元組的切片。

方法2:使用io.Reader 和json.NewDecoder()

或者,io.Reader 可以與json.NewDecoder () 一起使用。提供的io.Reader 將從字串中讀取而不創建副本,優化了過程:

s := `{"somekey":"somevalue"}`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)

此方法避免了將字串內容複製到[ ]byte,更適合較大的JSON 文本。

注意: 對於較小的JSON 字串,使用[]byte(s) 進行直接類型轉換是仍然是一個可行的選擇,對效能的影響可以忽略不計。

結論

本文示範了兩種將UTF-8 字串轉換為[]byte 的方法JSON 解組:直接型別轉換並使用io.Readerjson.NewDecoder()。採用適當的方法取決於特定的用例和資料大小。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn