XML转换为json

时间:2016-09-20 16:52:32

标签: json xml go

我有以下XML:

<ArrayOfAnyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <anyType xsi:type="xsd:dateTime">2016-09-14T13:58:30Z</anyType>
    <anyType xsi:type="xsd:decimal">1.2</anyType>
</ArrayOfAnyType>

我正在将其解组为以下结构:

type Value struct {
    Data []Data `xml:"anyType"`
}

type Data struct {
    Key string `xml:"http://www.w3.org/2001/XMLSchema-instance type,attr"`
    Value string `xml:",chardata"`
}

我最终想把他们整理成这种结构的json:

{
   timestamp: [the value of xsi:type="xsd:dateTime"]
   value: [the value of xsi:type="xsd:decimal"]
}

我是Go的新手,所以我不确定这是否可行。

1 个答案:

答案 0 :(得分:1)

Go中的字段标记允许指定任意数量的不同值 - 以空格分隔。 因此,在您的简单情况下,只需在json:"value"之后添加xml:"...",然后进行编组 JSON的unmarshaled值。

请注意,我指的是单个标记内的空格,而不是空格分隔的标记:

Field string `xml:"myns Xyzzy" json:"Blorb"`

在更复杂的情况下,可能需要具有用于解组的不同类型 和编组,以及铲除需要中间转换的数据 在这些类型的值之间。