我有一个名为“Url”的值成员的类型。将此类型编码为 json 时,我想在 Url 前面添加 HOST 值。实现这一目标的最佳方法是什么?
在这个例子中,Println语句打印{"url":"/thisurl"},我希望它打印{"url":"http://myhost.com/thisurl"}
package main
import "fmt"
import "encoding/json"
type Post struct {
Url string `json:"url"`
}
const (
HOST = "http://myhost.com"
)
func main() {
post := Post{"/thisurl"}
marshaled, _ := json.Marshal(post)
fmt.Println(string(marshaled))
//{"url":"/thisurl"}
}
更新
我可以在之前重新分配post.Url右json.Marshal线
post.Url = fmt.Sprintf("%s%s", HOST, post.Url)
但这感觉有点乱,如果我每次想编码为json时都必须记住重新分配。
我不想改变 的值post.Url,我只想改变它作为 json 的表示方式。
相关分类