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 属性

}
复制代码

 

posted on   running-fly  阅读(214)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-10-17 php url

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示