猿问

如何在 Go 语言中为结构使用动态键?

我有这个用于从 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 语言中做到这一点?

我搜索了很多但找不到任何好的解决方案。


慕斯王
浏览 101回答 2
2回答

泛舟湖上清波郎朗

如何在 Go 语言中为结构使用动态键?你根本做不到。这在 Go 中是不可行的。(如果需要,请使用地图。)

拉丁的传说

只是告诉你如何使用 Json 和地图,可能会有帮助package mainimport (    "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"])}
随时随地看视频慕课网APP

相关分类

Go
我要回答