Go: struct を map に変換
Go の struct を map に変換する方法です。
struct_to_map.go
// ----------------------------------------------------------------
//
// struct_to_map.go
//
// Jan/31/2021
//
// ----------------------------------------------------------------
package main
import (
"fmt"
"reflect"
)
type City struct {
Id string
Name_city string
Population int
Date_mod string
}
// ---------------------------------------------------------------
func main() {
fmt.Println ("*** 開始 ***")
aa := City{Id: "t0921", Name_city: "宇都宮", Population: 34126, Date_mod: "2018-3-2"}
fmt.Println (aa)
unit_aa := make (map[string]interface{})
tt := reflect.TypeOf(aa)
vv := reflect.ValueOf(aa)
for it:=0; it < tt.NumField(); it++ {
ff := tt.Field(it)
key := ff.Name
value := vv.FieldByName(key).Interface()
fmt.Println(key, value)
unit_aa[key] = value
}
fmt.Println (unit_aa)
fmt.Println ("*** 終了 ***")
}
// ----------------------------------------------------------------
実行結果
$ go run struct_to_map.go
*** 開始 ***
{t0921 宇都宮 34126 2018-3-2}
Id t0921
Name_city 宇都宮
Population 34126
Date_mod 2018-3-2
map[Date_mod:2018-3-2 Id:t0921 Name_city:宇都宮 Population:34126]
*** 終了 ***
Author And Source
この問題について(Go: struct を map に変換), 我々は、より多くの情報をここで見つけました https://qiita.com/ekzemplaro/items/bd5362ea55bf59d9a9f1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .