色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go map轉json庫

林國瑞2年前7瀏覽0評論

Go語言中,使用map很方便地存儲鍵值對。但是,在向前端傳遞map時,需要將其轉換為JSON格式的數據。為了方便轉換,可以使用go map轉json庫。

import (
"encoding/json"
"fmt"
)
func main() {
student := map[string]interface{}{
"name":  "Tom",
"age":   18,
"score": 90,
}
// 轉換為JSON格式
b, err := json.Marshal(student)
if err != nil {
fmt.Println("JSON轉換出錯:", err)
}
fmt.Println(string(b))
}

使用json.Marshal()函數即可將map轉換為JSON格式的字節數組。需要注意的是,在將map轉換為JSON時,必須使用interface{}類型作為map的值。否則,在轉換為JSON時會出現編譯錯誤。

可以通過使用json.Unmarshal()函數,將JSON格式的數據轉換為map。代碼如下:

jsonData := []byte(`{
"name": "Tom",
"age": 18,
"score": {
"math": 90,
"english": 85
}
}`)
var student map[string]interface{}
err := json.Unmarshal(jsonData, &student)
if err != nil {
fmt.Println("JSON轉換出錯:", err)
}
fmt.Println(student["name"])
fmt.Println(student["age"])
score := student["score"].(map[string]interface{})
fmt.Println(score["math"])

在將JSON格式的數據轉換為map時,必須提供一個與待轉換數據相匹配的map變量。在json.Unmarshal()函數的第二個參數中,&符號表示將該變量的地址傳遞給函數,函數在轉換JSON數據后修改變量的值。

需要注意的是,使用json.Unmarshal()函數轉換出來的map的值都是interface{}類型。在使用時,需要使用類型斷言轉換為對應的類型。