Go语言 xml.解封不支持的类型结构

zf2sa74q  于 2023-05-20  发布在  Go
关注(0)|答案(1)|浏览(112)

我得到一个错误,我不能xml。封送一个结构在运行时与反射。
它给了我以下错误:

xml: unsupported type: struct { ... }

这是我的Playground。
有人知道为什么这不管用吗?
我在实施过程中遗漏了什么?
它适用于JSON和YAML。

j2cgzkjk

j2cgzkjk1#

https://pkg.go.dev/encoding/xml@go1.20.3#Marshal
XML元素的名称按优先顺序取自:

  • XMLName字段上的标记(如果数据是结构)
  • Name类型的XMLName字段的值
  • 用于获取数据的struct字段的标记
  • 用于获取数据的结构字段的名称
  • 封送类型的名称

您的 root 结构是 unnamed 并且 * 没有XMLName字段 *,因此XML封送拆收器无法解析根元素的名称。如果将Person xml.Name字段重命名为XMLName,则序列化器可以工作。
https://go.dev/play/p/gRH3Y-PUxl8

相关问题