如何在 Go 语言中为结构使用动态键?
How can I use dynamic key for struct in Go lang?
我有这个结构用于从 Json 字符串中获取数据。
type msg struct {
Msg1 string `json:"msg1"`
Msg2 string `json:"msg2"`
Msg3 string `json:"msg3"`
}
我需要像下面这样使用这个结构。
num := // some random number under 3
data := msg.Msg + num // as msg.Msg1, msg.Msg2...
我如何在 Go 语言中执行此操作?
我搜索了很多但找不到任何好的解决方案。
How can I use dynamic key for struct in Go lang?
你根本做不到。这在 Go 中是不可行的。
(如果需要,请使用地图。)
向您展示如何使用 Json 和地图,可能会有帮助
package main
import (
"fmt"
"encoding/json"
)
type sample struct{
Member1 string `json:"TheMember1"`
}
func main() {
map_contains := make(map[string]string)
//Part 1 Direct Add to Map
map_contains["w"]="mmmmm"
fmt.Println(map_contains)
fmt.Println(map_contains["w"])
//Part 2 JsonString to Map
json.Unmarshal([]byte(`{"a":"123"}`),&map_contains)
fmt.Println(map_contains)
fmt.Println(map_contains["a"])
//Part 3 Struct To JsonString To Map
s1:=sample{
Member1:"June",
}
s1json,err:=json.Marshal(s1)
if err != nil {
panic(err)
}
fmt.Println(string(s1json))
json.Unmarshal(s1json,&map_contains)
fmt.Println(map_contains)
fmt.Println(map_contains["TheMember1"])
}
我有这个结构用于从 Json 字符串中获取数据。
type msg struct {
Msg1 string `json:"msg1"`
Msg2 string `json:"msg2"`
Msg3 string `json:"msg3"`
}
我需要像下面这样使用这个结构。
num := // some random number under 3
data := msg.Msg + num // as msg.Msg1, msg.Msg2...
我如何在 Go 语言中执行此操作?
我搜索了很多但找不到任何好的解决方案。
How can I use dynamic key for struct in Go lang?
你根本做不到。这在 Go 中是不可行的。
(如果需要,请使用地图。)
向您展示如何使用 Json 和地图,可能会有帮助
package main
import (
"fmt"
"encoding/json"
)
type sample struct{
Member1 string `json:"TheMember1"`
}
func main() {
map_contains := make(map[string]string)
//Part 1 Direct Add to Map
map_contains["w"]="mmmmm"
fmt.Println(map_contains)
fmt.Println(map_contains["w"])
//Part 2 JsonString to Map
json.Unmarshal([]byte(`{"a":"123"}`),&map_contains)
fmt.Println(map_contains)
fmt.Println(map_contains["a"])
//Part 3 Struct To JsonString To Map
s1:=sample{
Member1:"June",
}
s1json,err:=json.Marshal(s1)
if err != nil {
panic(err)
}
fmt.Println(string(s1json))
json.Unmarshal(s1json,&map_contains)
fmt.Println(map_contains)
fmt.Println(map_contains["TheMember1"])
}