go新人求助一个问题

skykful · · 2747 次点击
jan-bar
想要拥有,必定付出。
三方库解君愁 ```go package main import ( "fmt" "strings" jsoniter "github.com/json-iterator/go" "github.com/json-iterator/go/extra" ) func main() { err := test() if err != nil { panic(err) } } func test() error { type Person struct { Name string Age int } type Student struct { Person School string `json:"school"` Grade string `json:"grade"` } extra.SetNamingStrategy(strings.ToLower) // 设置名称转换规则 json := jsoniter.ConfigCompatibleWithStandardLibrary s1 := new(Student) s1.Name = "张三" s1.Age = 20 s1.School = "家里蹲大学" s1.Grade = "本科" b, err := json.Marshal(s1) if err != nil { return err } fmt.Println(string(b)) return nil } ``` 结果:{"name":"张三","age":20,"school":"家里蹲大学","grade":"本科"}
#5
更多评论
type Person1 struct { Name string `json:"name"` Age int `json:"age"` }
#1
要么自定义结构体,把 `Person` 转成自己要的。要么自己用 `reflect` 实现一个 `Marshal` 方法。
#2