json.NewDecode用法

Go使用RFC3339进行编码,如果控制生成的json,只需将2022-04-03T00:00:00.000更改为2022-04-03T00:00:00.000Z

例如,这是有效的。

type Contract struct {
    ContractId          *int       `json:"contract_id"`
    CompanyId           *int       `json:"company_id"`
    DateEstablished     *time.Time `json:"date_established"`
    ExpiryDate          *time.Time `json:"expiry_date"`
    ExtensionExpiryDate *time.Time `json:"extension_expiry_date"`
    Description         *string    `json:"description"`
}

func main() {
    body := `{"contract_id":0,"date_established":"2022-04-03T00:00:00.000Z","expiry_date":null,"extension_expiry_date":null,"description":"fffff"}`

    var contract Contract
    reader := strings.NewReader(body)
    decoder := json.NewDecoder(reader)
    err := decoder.Decode(&contract)
    if err != nil {
        fmt.Println("Error: ", err)
    } else {
        fmt.Printf("Contract: %+v\n", contract)
    }
}

如果不控制json,则需要编写一个自定义解组方法。

posted @   技术颜良  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2021-12-21 go类型的默认值,注意pointer, channel, func, interface, map, or slice在没初始化的情况下
2018-12-21 MySQL半同步复制
2018-12-21 KeepAlived+MySQL互为主从
2018-12-21 Docker跨主机网络解决方案
点击右上角即可分享
微信分享提示