我需要将一个 map[string]interface{}
其键是 json 标签名称转换为 struct
type MyStruct struct {
Id string `json:"id"`
Name string `json:"name"`
UserId string `json:"user_id"`
CreatedAt int64 `json:"created_at"`
}
map[string]interface{}
具有键 id
、name
、user_id
、创建于
。我需要将其转换为 struct
。
最佳答案
如果我没看错的话,你有一张 map ,想要填充结构。如果是先改成jsonString再Unmarshal成struct
package main
import (
"encoding/json"
"fmt"
)
type MyStruct struct {
Id string `json:"id"`
Name string `json:"name"`
UserId string `json:"user_id"`
CreatedAt int64 `json:"created_at"`
}
func main() {
m := make(map[string]interface{})
m["id"] = "2"
m["name"] = "jack"
m["user_id"] = "123"
m["created_at"] = 5
fmt.Println(m)
// convert map to json
jsonString, _ := json.Marshal(m)
fmt.Println(string(jsonString))
// convert json to struct
s := MyStruct{}
json.Unmarshal(jsonString, &s)
fmt.Println(s)
}
更新 2021-08-23
虽然我看到了,但这篇文章很有用。我在我的要点上发布了一个完整的示例,请查看here
关于go - map[string]interface{} 到带有 json 标签的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48994008/