您的位置:首页 > Web前端 > JavaScript

json.Marshal的小细节

2015-10-07 02:55 537 查看
type User struct {
id    int
name  string
age   int
class string
}

// 官网例子
type ColorGroup struct {
ID     int
Name   string
Colors []string
}

func (this *UserController) Get() {
fmt.Println(this.Ctx.Input.Param(":user"))
a, _ := this.GetInt(":user")
fmt.Println("hello")
fmt.Println(a)
time.Sleep(time.Duration(a) * time.Second)
//this.Ctx.WriteString("hello World")
user := User{
id:    1,
name:  "wang",
age:   22,
class: "class1",
}
body, err := json.Marshal(user)
if err != nil {
fmt.Println("Error: ", err)
}
fmt.Println("user: ",string(body))
group := ColorGroup{
ID:     1,
Name:   "Reds",
Colors: []string{"Crimson", "Red", "Ruby", "Maroon"},
}
b, err := json.Marshal(group)
if err != nil {
fmt.Println("error:", err)
}

fmt.Println("color: ",string(b))
this.Ctx.WriteString(string(body))
}


output

{}
{"ID":1,"Name":"Reds","Colors":["Crimson","Red","Ruby","Maroon"]}


上面的user结构体序列化之后为 应该修改为:

type User struct {
Id    int  // 首字母大写
Name  string
Age   int
Class string
}


必须要field的首字母大写才能成功的解析为json格式的数据,或者tag(field首字母还是必须要大写,不然为 ).不然为空.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json