如果字段为空,则避免XML整数解析错误

Eri*_*ner 7 go

考虑这两个XML文档

<a>
  <b nil="true"></b>
</a>
Run Code Online (Sandbox Code Playgroud)

<a>
  <b type="integer">1</b>
</a>
Run Code Online (Sandbox Code Playgroud)

如何在转到b类型的struct字段中正确解组此XML int,而不会strconv.ParseInt: parsing "": invalid syntax在第一种情况下产生错误?

omitempty 在这种情况下似乎不起作用.

示例:http://play.golang.org/p/fbhVJ4zUbl

mat*_*uer 1

omitempty 标签仅受到 Marshal 的尊重,而不是 Unmarshal 的尊重。

如果 int 值不是实际的 int,则解组错误。

相反,将 B 更改为字符串。然后,使用 strconv 包将 B 转换为 int。如果出错,则将其设置为 0。

试试这个片段: http: //play.golang.org/p/1zqmlmIQDB