我需要将对象作为 xml 发送到网络服务。我已经有了 pojo,现在我需要使用 Groovy 将它转换为 xml。在 grails 中我使用了 as
关键字,在 Groovy 中执行此操作的等效代码是什么?
示例 Grails 代码:
import grails.converters.*
render Airport.findByIata(params.iata) as XML
请您参考如下方法:
使用 StreamingMarkupBuilder
执行此操作的一个简单示例是:
class Airport {
String name
String code
int id
}
Writable pogoToXml( object ) {
new groovy.xml.StreamingMarkupBuilder().bind {
"${object.getClass().name}" {
object.getClass().declaredFields.grep { !it.synthetic }.name.each { n ->
"$n"( object."$n" )
}
}
}
}
println pogoToXml( new Airport( name:'Manchester', code:'MAN', id:1 ) )
应该打印:
<Airport><name>Manchester</name><code>MAN</code><id>1</id></Airport>