go json.Marshal 和 json.Unmarshal與結構體

結構體屬性名字小寫會被忽略

package main

import (
    "encoding/json"
    "fmt"
)

type People struct {
    name   string `json:"name"`
    Height string `json:"height"`
}
type Student struct {
    Age    string `json:"age"`
    weight string `json:"weight"`
}

func main() {
    s := Student{
        Age:    "13",
        weight: "33", //屬性小寫,在使用Marshal轉換成切片的時候會被忽略
    }
    if sslice, err := json.Marshal(s); err == nil {
        fmt.Println(string(sslice)) // {"age":"13"} 忽略了小寫的weight屬性
    }

    js := `{
    "name":"11",
    "Height":"179"
}`
    var p People
    err := json.Unmarshal([]byte(js), &p)
    if err != nil {
        fmt.Println("err :", err)
        return
    }
    fmt.Println("people:", p) //people: { 179}   忽略了小寫name 屬性

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章