2016-09-20 43 views
0

我有下面的XML:XML到JSON与改造

<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"] 
} 

我是新去的,所以我不知道这甚至有可能。

回答

1

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

请注意,我的意思是一个标签,而不是内部空间的空间分隔标签:

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

在更复杂的情况下,可能需要它有不同类型的解编 和编组,并铲数据与在这些类型的值之间需要中间转换 。