我遇到了omitempty
和空值的问题。请参阅this playground example。在值""
的情况下,我有一个我不想在元帅中被忽略的值。这明确意味着我想清除值,因此我想要编组结果:
{"cf_objectType":"Product","cf_isLocked":"No","cf_ErrorMessage":""}
现在我尝试了指针到字符串的方法here,但出于某种原因,我不喜欢这样。有没有其他选择?例如,为什么我们没有omitempty
之类的标签(就像omitnull
)?
修改
澄清一下,见下文
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",
}
答案 0 :(得分:2)
如果您不想省略空值,只需删除omitempty
标记
答案 1 :(得分:1)
关于你的上一条评论(我没有足够的声誉可以回复):
好的,这有效:there但是我混合了 我的struct定义中的string和* string。我也不能“填补” 没有
var emptyString = ""
的值,对吧?