我想在struct中删除空值的元素。我的脚本如下。此脚本的输出为{"keyA":{}}
。我将omitempty
用于KeyA和KeyB。但是剩下一个具有空值的元素。另一方面,没有显示KeyB。我想在有值时显示KeyA。我不想在没有值时显示KeyA。有没有办法做到这一点?
package main
import (
"encoding/json"
"fmt"
)
type sample struct {
KeyA struct {
Key1 string `json:"keyA1,omitempty"`
Key2 string `json:"keyA2,omitempty"`
} `json:"keyA,omitempty"`
KeyB string `json:"keyB,omitempty"`
}
func main() {
var s sample
response, _ := json.Marshal(s)
fmt.Println(string(response)) // {"keyA":{}}
}
非常感谢你的时间。我很抱歉我的问题不成熟。
答案 0 :(得分:1)
尝试this:
package main
import (
"encoding/json"
"fmt"
)
type KeyA struct {
Key1 string `json:"keyA1,omitempty"`
Key2 string `json:"keyA2,omitempty"`
}
type sample struct {
KeyA *KeyA `json:"keyA,omitempty"`
KeyB string `json:"keyB,omitempty"`
}
func main() {
var s sample
response, _ := json.Marshal(s)
fmt.Println(string(response)) // {}
}
输出:
{}