猿问

封送至JSON时将类型int转换为const名称的字符串

我有一个看起来像这样的结构:


type Type int


const (

    A Type = iota

    B

    C

)


type Character struct {

    Type Type   `json:"type"`

}

当我打电话json.Marshal(...)的结构,是有办法的json:"type"表示被称为串要么"A","B"或“ C“?


当此JSON中提出,没有人会知道是什么0,1或者2是,这样的常量的名称是比较有用的。


抱歉,是否曾经有人问过。我到处搜索,找不到任何东西。


这是一个例子:


type Type int


const (

    A Type = iota

    B

    C

)


type Character struct {

    Type Type   `json:"type,string"`

}


func main() {

    c := Character{}

    c.Type = A

    j, err := json.Marshal(c)

    if err != nil {

        panic(err)

    }

    fmt.Println(string(j))

}

我想fmt.Println(string(j))打印{"type":"A"},不{"type":0}。


慕无忌1623718
浏览 224回答 3
3回答
随时随地看视频慕课网APP

相关分类

Go
我要回答