使用案例是生成(并解析)以下XML和JSON,而不为它们每个创建单独的结构。
XML
可能的解决方案是:
然而,现在它生成以下JSON:
<xxx xmlns="http://example.org/ns">
<data type="plaintext">Hello</data>
<field1>Something1</field1>
<field2>Something2</field2>
...
</xxx>
JSON
{
"data": "Hello",
"data_type": "plaintext",
"field1": "Something1",
"field2": "Something2"
...
}
可能的解决方案是:
type Xxx struct {
XMLName xml.Name `xml:"http://example.org/ns xxx" json:"-"`
// **If only "inline" attribute had existed**
Data Data `xml:"data" json:",inline"`
// There are a lot of other fields here
Field1 string `xml:"field1" json:"field1"`
Field2 string `xml:"field2" json:"field2"`
...
}
type Data struct {
Value string `xml:",chardata" json:"data"`
Type string `xml:"type,attr" data_type:"data"`
}
然而,现在它生成以下JSON:
{"Data": {"data": "Hello", "type": "plaintext"}, "field1": "Something1", "field2": "Something2"}
这不是我需要的。那么,有没有其他方法可以解决问题,而不是使用单独的结构来处理xml和json?