Go-Tips:map转json-> json转结构体

 

近期完成了入职以来的第一个任务(飞书导入数据,并解析到数据表中),其中有一段根据字段名导入数据到结构体中的逻辑,原本采用多个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)
}

你可能感兴趣的:(go学习笔记,json,golang)