struct Tag定义后还能再修改吗?

要用的json输入和输出字段名不一样,
type a struct {
        test string `json:"test1"`
}
这样存只能存叫test1的字段json
也只能输出test1
现在想把这个字段输出成test2
不知道能不能修改这个标签再输出变成test2,不行的话,有没其他解决办法
想到最糟糕的办法就是输出再替换字符串

共 5 个回复


jimmykuu

不行就再定义一个struct吧。

# 1

heimeil

@jimmykuu 字段太多,这样写不烦死了

# 2

stevewang

那用map不就可以了?

package main

import(
    "fmt"
    "encoding/json"
)

func main() {
    m := map[string]interface{}{
        "key1": "val1",
        "key2": 100, 
    }
    data, _ := json.Marshal(m)
    fmt.Println(string(data))
}

output:

{"key1":"val1","key2":100}
# 3

jimmykuu

这种脑残的协议都能接受,还怕多写几行代码么。

# 4