json - Go json,编码空值

标签 json go isnullorempty

我遇到了 omitempty 和空值的问题。请看this playground example .我有一个值,如果值 "",我不想在编码(marshal)期间被忽略。这明确表示我想清除该值,因此我想要编码结果:

{"cf_objectType":"Product","cf_isLocked":"No","cf_ErrorMessage":""}

现在我尝试了指针到字符串的方法 here ,但出于某种原因我不喜欢这个。有没有已知的替代品?例如,为什么我们没有像 omitnull 之类的标签(就像 omitempty)?

编辑

为了澄清,见下文

m := Metadata{
    ObjectType:   "Product",
    Locked:       "No",
    ErrorMessage: "",

}

我希望这个结构上的 marshal 函数的结果是:

{
    "cf_objectType":"Product",
    "cf_isLocked":"No",
    "cf_ErrorMessage":""
}

m := Metadata{
    ObjectType:   "Product",
    Locked:       "No",
}

结果应该是:

{
    "cf_objectType":"Product",
    "cf_isLocked":"No",
}

最佳答案

如果你不想省略空值,只需删除 omitempty 标签

https://play.golang.org/p/6axA2OIG6O

关于json - Go json,编码空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45348256/

相关文章:

json - 如何获取ffmpeg命令生成的json的key值?

http - 获取正在发送的 HTTP 请求正文

.net - Cocoa有类似.NET的String.IsNullOrEmpty的功能吗?

arrays - 如何创建 5 个值的数组/slice ,所有值都相同

c# - If string is not null or empty else 的一行

database - 如何检查 mule 的选择组件中的有效负载是否为空?

javascript - API 调用时获取无效 JSON

java - 如何用camel编写jsonpath来选择json文件中的项目

java - 我的 Java Web 服务返回一个包裹在 html 中的 JSON 字符串,我如何删除 HTML

go - reader.ReadLine() 在 Scanner.Scan() 调用后不会前进