Woj*_*ski 1 xml serialization scala xml-serialization
我在寻找Scala的xml序列化库。对于json序列化,我使用lift-json,并且希望我的xml序列化库相似,这意味着:
你知道这样的图书馆是否存在吗?
小智 5
一种不错的选择是使用纯Java库XStream。
这适用于类的情况下开箱,有一些调整-我使用的是类XStreamConversions从mixedbits-webframework - ,它也可以与列表,元组,符号,ListBuffer和ArrayBuffer。因此它不是完美的,但是您一定可以针对您的特定需求对其进行微调。
这是一个小例子。
import com.thoughtworks.xstream.XStream
import com.thoughtworks.xstream.io.xml.StaxDriver
import net.mixedbits.tools.XStreamConversions
case class Bar(a:String)
case class Foo(a:String,b:Int,bar:Seq[Bar])
object XStreamDemo {
def main(args: Array[String]) {
val xstream = XStreamConversions(new XStream(new StaxDriver()))
xstream.alias("foo", classOf[Foo])
xstream.alias("bar", classOf[Bar])
val f0 = Foo("foo", 1, List(Bar("bar1"),Bar("bar2")))
val xml = xstream.toXML(f0)
println(xml)
val f1 = xstream.fromXML(xml)
println(f1)
println(f1 == f0)
}
}
Run Code Online (Sandbox Code Playgroud)
这将产生以下输出:
<?xml version="1.0" ?><foo><a>foo</a><b>1</b><bar class="list"><bar><a>bar1</a></bar><bar><a>bar2</a></bar></bar></foo>
Foo(foo,1,List(Bar(bar1), Bar(bar2)))
true
Run Code Online (Sandbox Code Playgroud)
对于Java 1.6 / Scala 2.9,依赖性是xstream.jar文件和提到的XStreamConversions类。
| 归档时间: |
|
| 查看次数: |
3511 次 |
| 最近记录: |