admin 管理员组文章数量: 1103806
mapstructure传送门
package main
import (
"encoding/json"
"fmt"
"github/mitchellh/mapstructure"
)
type Demo struct {
ID int `json:"id"`
Name string `json:"name"`
}
func main() {
var value = make(map[string]Demo)
value["1"] = Demo{
ID: 1,
Name: "name-1",
}
valueData, err := json.Marshal(value)
if err != nil {
panic(err)
}
var newValue interface{}
if err = json.Unmarshal(valueData, &newValue); err != nil {
panic(err)
}
// 反序列化之后只能强转为map[string]interface{}
for _, v := range newValue.(map[string]interface{}) {
/*
此时可以使用mapstructure.Decode方法编码,该方法使用的是反射的机制;
也可以对v进行序列化,然后反序列化给demo变量;
*/
var demo Demo
if err = mapstructure.Decode(v, &demo); err != nil {
panic(err)
}
fmt.Println(demo)
}
}
本文标签: golang Mapstructure
版权声明:本文标题:Golang库解析之mapstructure 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.520sys.cn/xp/1755047970a1463240.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论