近期完成了入职以来的第一个任务(飞书导入数据,并解析到数据表中),其中有一段根据字段名导入数据到结构体中的逻辑,原本采用多个if else进行判断,后在代码review时被建议优化,优化方法即通过标签进行转换,详情见代码
package main
import (
"encoding/json"
"fmt"
)
type Test struct {
A string `json:"文具"`
B string `json:"数码产品"`
C string `json:"动物"`
D string `json:"运动"`
}
func main() {
var test = []map[string]string{
{
"文具": "尺子",
"动物": "鸡",
"数码产品": "手机",
"运动": "跑步",
},
{
"文具": "纸",
"动物": "鸭子",
"数码产品": "MP3",
"运动": "睡觉",
},
{
"文具": "笔",
"动物": "鱼",
"数码产品": "耳机",
},
}
testSlices := make([]Test, 0)
for i := 0; i < len(test); i++ {
var byteInfo []byte
byteInfo, _ = json.Marshal(test[i])
fmt.Println("byteInfo", string(byteInfo))
testSlice := Test{}
json.Unmarshal(byteInfo, &testSlice)
testSlices = append(testSlices, testSlice)
}
fmt.Println(testSlices)
}