我正在使用一个返回 XML 的 REST API,我正在尝试解组 XML,但遇到了似乎omitempty无法正常工作的问题。这是一个工作 XML 文件的示例:<?xml version='1.0' encoding='UTF-8'?><customer uri="/api/customers/339/" id="339"> <name> <first>Firstname</first> <last>Lastname</last> </name> <email>myemail@example.com</email> <billing> <address> <address1>123 Main St.</address123> <address2></address2> <city>Nowhere</city> <state>IA</state> <country>USA</country> <zip>12345</zip> </address> </billing></customer>这是一个“坏”记录的例子<?xml version='1.0' encoding='UTF-8'?><customer uri="/api/customers/6848/" id="6848"> <name> <first>Firstname</first> <last>Lastname</last> </name> <email/> <billing/></customer>现在我的结构设置如下: type Customer struct { ID int `xml:"id,attr"` Name *Name `xml:"name,omitempty"` Billing *Billing `xml:"billing,omitempty"` } type Billing struct { Address *Address `xml:"address,omitempty"` } type Address struct { address_1 string `xml:",omitempty"` address_2 string `xml:",omitempty"` city string `xml:",omitempty"` postal string `xml:",omitempty"` country string `xml:",omitempty"` } type Name struct { first, last string }当 XML 遵循第一个示例的模式时,它可以读取所有记录,<billing></billing>但是当它遇到类似的记录时<billing/>会引发以下错误:panic: runtime error: invalid memory address or nil pointer dereference有人可以帮我弄清楚发生了什么以及如何解决吗?
1 回答
- 1 回答
- 0 关注
- 199 浏览
添加回答
举报
0/150
提交
取消