- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以强制omitempty
对于结构中的所有字段 没有 针对每个字段明确指定它?
type Item struct {
Name string `json:"item,omitempty"`
Quantity int `json:"quantity,omitempty"`
Price int `json:"price,omitempty"`
}
omitempty
看起来既丑陋又多余针对每个领域,如果我在所有领域都需要它。如果
json.Marshal()
也会很棒在
时有某种方式可以忽略空字段编码 .有人可以建议实现这一目标的最佳方法还是这是最好的方法?
最佳答案
您可以实现 json.Marshaller
接口(interface)来进行自定义 JSON 编码。
例子:
// Your struct
type Item struct {
Name string `json:"item"`
Quantity int `json:"quantity"`
Price int `json:"price"`
}
func (i Item) MarshalJSON() ([]byte, error) {
return json.Marshal(&struct {
Name string `json:"name"` // Fields that you need
}{
Name: i.Name,
})
}
i := Item{Name: "Apple", Price: 1200}
itemJSON, err := json.Marshal(i)
if err != nil {
log.Fatalf("%v", err)
}
fmt.Println(string(itemJSON)) // -> {"name":"Apple"}
关于json - 所有字段的 "omitempty",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59680212/
有什么方法可以强制omitempty对于结构中的所有字段 没有 针对每个字段明确指定它? type Item struct { Name string `json:"item,omit
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我很好奇 omit empty 的用例是什么: type Example struct { ID string `json:",omitempty"` Name
我正在尝试为 Alfred 2 应用程序生成 XML。看起来有点像这样: My Thing My Other Thing
在我的网络服务中,我有一个模型: // Comment struct type Comment struct { Owner UserObject `json:
我正在使用返回 XML 的 REST API 并尝试解码 XML,但我遇到的问题似乎是 omitempty不管用。这是一个工作 XML 文件的示例: Firstname
如果 null sql.NullString 无效,应该如何不呈现它? - http://play.golang.org/p/pzSWS9vE0J 它似乎不能与 omitempty struct 标签
尝试 json Marshal 包含 2 个时间字段的结构。但我只希望该字段具有时间值(value)。所以我正在使用 json:",omitempty" 但它不起作用。 我可以将 Date 值设置为什
下面的代码是解释。我可以使用非简单类型的唯一方法是使该类型成为指针。 是否有不使用指针的替代解决方案? 代码不工作: type Foo struct { Bar Bar `json:"bar,
我正在使用带有 json 代理的 google grpc。出于某种原因,我需要从 *.pb.go 文件中生成的结构中删除 omitempty 标记。 如果我有这样的原始消息 message Statu
当将一个结构编码为 JSON 时,我可以将一个变量分配给它对应的“空值”,并且即使在使用 omitempty 时仍然传递它,但是我无法在嵌套结构中获得相同的结果,因为尽管它被省略了作为一个指针。这可能
我试图省略 nil 接口(interface)值 package main import ( "fmt" "encoding/json" ) type MyStruct struct{
请看下面。 https://play.golang.org/p/HXrqLqYIgz 我的期望值是: {"Byte2":0,"Name":"bob"} 但实际: {"ByteArray":[0,0,0
我正在处理一个优惠券表单,其中有一些可选字段。 简介: 所有表单字段值都以 JSON 格式接收并映射到 Golang 结构中。在结构中,我为每个字段添加了一个“omitempty”标志。因此只有那些具
我是一名优秀的程序员,十分优秀!