在Go語言中,可以使用encoding/json
包來實現[]byte
與JSON之間的轉換。
將[]byte
轉換為JSON,可以使用json.Marshal()
函數,它接受一個任意類型的值作為參數,返回一個JSON格式的[]byte
。例如:
package main
import (
"encoding/json"
"fmt"
)
func main() {
data := []byte("Hello, World!")
jsonData, err := json.Marshal(data)
if err != nil {
fmt.Println("JSON encoding error:", err)
return
}
fmt.Println(string(jsonData))
}
輸出結果為:
"SGVsbG8sIFdvcmxkIQ=="
將JSON轉換為[]byte
,可以使用json.Unmarshal()
函數,它接受一個JSON格式的[]byte
作為參數,并將JSON解碼為相應的Go值。例如:
package main
import (
"encoding/json"
"fmt"
)
func main() {
jsonData := []byte(`"SGVsbG8sIFdvcmxkIQ=="`)
var data []byte
err := json.Unmarshal(jsonData, &data)
if err != nil {
fmt.Println("JSON decoding error:", err)
return
}
fmt.Println(string(data))
}
輸出結果為:
Hello, World!
請注意,在使用json.Unmarshal()
函數時,需要將目標變量的指針作為參數傳遞給函數。這樣才能將解碼后的值正確地賦給目標變量。