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
标签
关于您最后的评论(我没有足够的声誉来回复):
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
我在 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
标签
关于您最后的评论(我没有足够的声誉来回复):
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?
见