Go json,封送空值

Go json, marshal empty value

我在 omitempty 和空值方面遇到问题。请参阅 this playground example。我有一个值,在值 "" 的情况下,我不想在元帅期间被忽略。这明确意味着我想清除该值,因此我想要编组结果:

{"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":""
}

AND

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

结果应该是:

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

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

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

关于您最后的评论(我没有足够的声誉来回复):

Ok, this works: play.golang.org/p/TYk67p6i_b But then I have a mix of string and *string in my struct definition. And I also can't "fill" the value without having the var emptyString = "", right?

post