golang interface{}转换成struct结构体的两种方法
发布时间:2023-01-27 编辑:jiaochengji.com
教程集为您提供golang interface{}转换成struct结构体的两种方法等资源,欢迎您收藏本站,我们将为您提供最新的golang interface{}转换成struct结构体的两种方法资源
1.使用断言,强制转换
p, ok := (Value).(user)
22 if ok {
23 fmt.Println("id:" p.Id)
24 fmt.Println("name:" p.Name)
25 } else {
26 fmt.Println("can not convert")
27 }
2.json序列化
resByre,resByteErr:=json.Marshal(ResponseData)
if resByteErr != nil {
c.Data(utils.ErrorResult("读取信息失败" resByteErr.Error()))
return
}
var newData MnConfig
jsonRes:=json.Unmarshal(resByre,&newData)
if jsonRes != nil {
c.Data(utils.ErrorResult("读取信息失败" jsonRes.Error()))
return
}
实例:
package main
import (
"encoding/json"
"fmt"
)
type user struct {
Id int `json:"id"`
Name string `json:"name"`
}
func main() {
newUser:=user{
Id: 1,
Name: "杉杉",
}
var newInterface1 interface{}
//第一种使用interface
newInterface1=newUser
fmt.Printf("使用interface: %v",newInterface1.(user))
//第二种使用json
var newInterface2 interface{}
newInterface2=newUser
resByre, resByteErr := json.Marshal(newInterface2)
if resByteErr != nil {
fmt.Printf("%v",resByteErr)
return
}
var newData user
jsonRes := json.Unmarshal(resByre, &newData)
if jsonRes != nil {
fmt.Printf("%v",jsonRes)
return
}
fmt.Printf("使用 json: %v",newData)
}
结果:
到此这篇关于“golang interface{}转换成struct结构体的两种方法”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!您可能感兴趣的文章:
活学活用golang的反射机制
golang学习之结构体,方法,接口
golang 初始化并赋值_Golang | 既是接口又是类型,interface是什么神仙用法?
Golang interface 接口要点梳理
golang反射——执行函数
Golang使用reflect操作struct
golang 面试题(十三)interface内部结构和nil详解
浅析Go语言的Interface机制
interface作为struct field,谈谈golang结构体中的匿名接口
真的理解go interface了吗?
[关闭]