Go map與struct轉換的方法如下。
利用JSON marshal、unmarshal來進行map與struct的轉換。
map 轉 struct
main.go
package main
import (
"encoding/json"
"fmt"
)
type Employee struct {
Id int64
Name string
Age int
}
func main() {
m := map[string]any{
"id": 1,
"name": "john",
"age": 33,
}
b, err := json.Marshal(m)
if err != nil {
panic(err)
}
emp := Employee{}
err = json.Unmarshal(b, &emp)
if err != nil {
panic(err)
}
fmt.Println(emp) // {1 john 33}
}
執行印出以下:
{1 john 33}
struct 轉 map
main.go
package main
import (
"encoding/json"
"fmt"
)
type Employee struct {
Id int64
Name string
Age int
}
func main() {
emp := Employee{
Id: 1,
Name: "john",
Age: 33,
}
b, err := json.Marshal(emp)
if err != nil {
panic(err)
}
m := make(map[string]any, 0)
err = json.Unmarshal(b, &m)
if err != nil {
panic(err)
}
fmt.Println(m) // map[Age:33 Id:1 Name:john]
}
執行印出以下:
map[Age:33 Id:1 Name:john]
沒有留言:
張貼留言