我遇到了 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
标签
关于json - Go json,编码空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45348256/