首页 > 后端开发 > Golang > 如何为 Go 中缺少的 JSON 字段设置默认值?

如何为 Go 中缺少的 JSON 字段设置默认值?

Barbara Streisand
发布: 2024-12-18 17:40:15
原创
243 人浏览过

How Can I Set Default Values for Missing JSON Fields in Go?

在 Go 中自定义 JSON 解析默认值

在 Go 中解析 JSON 时,为不存在的字段分配默认值可以增强数据操作。以下是如何使用encoding/json包或利用外部Go库来实现这一点。

使用encoding/json

encoding/json包提供了一个简单的解决方案。您可以使用默认值对其进行初始化,而不是将空结构传递给 json.Unmarshal。例如:

type Test struct {
    A string "a"
    B string "b"
    C string
}

example := []byte(`{"A": "1", "C": "3"}`)

out := Test{}
err := json.Unmarshal(example, &out)
if err != nil {
    panic(err)
}
fmt.Printf("%+v", out)
登录后复制

利用外部库

如果encoding/json包不能完全满足你的需求,还有提供增强JSON的外部Go库解析功能。一种流行的选项是 go-json 库,它允许您使用结构标签指定缺失字段的默认值。

import (
    "encoding/json"
    "github.com/go-json"
)

type Test struct {
    A string `json:"a,omitempty"`
    B string `json:"b,omitempty"`
    C string `json:"c,omitempty"`
}

example := []byte(`{"A": "1", "C": "3"}`)

out := Test{
    DefaultA: "a",
    DefaultB: "b",
    DefaultC: "c",
}

err := json.Unmarshal(example, &out)
if err != nil {
    panic(err)
}
fmt.Printf("%+v", out)
登录后复制

以上是如何为 Go 中缺少的 JSON 字段设置默认值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板