自动XML转换
问题描述:
比方说,我有下面的类:自动XML转换
类Person(VAL姓:字符串,VAL名字:字符串)
有没有生成该类XML,而无需自动方式手动创建一个toXml()方法?理想情况下,输出会是这样的:
<Person> <firstName>John</firstName> <lastName>Smith</lastName> </Person>
好像应该有办法做到这一点,而无需手动编写了这一切,。也许有一个我还没有找到的特质?
答
不幸的是,我不认为有这样一个神奇的特质。你可以使用像XStream这样的东西来实现这一点。然而,它似乎并没有自动打印所有的Scala类,所以你可能需要编写自己的转换器。在列表的情况下,Someone else已经这么做了,我想对于你的例子你可能需要类似的东西。
答
对于case
类(或其他Product
子类),这是一次很容易写统称:名称可以用productPrefix
检索,所有的值通过productIterator
是可迭代的,并通过productElementName
字段的名称。
不幸的是,productElementName
也只有很短的生命:它是在revision 20958添加和删除在revision 21223,显然是因为它增加太多重量case类(有也是一个open ticket它)。