如何使用"as"关键字将pojo转换为xml

Abe*_*Abe 2 grails groovy xml-serialization

我需要将对象作为xml发送到Web服务.我已经有了pojo,现在我需要使用Groovy将其转换为xml.在grails中我使用了as关键字,在Groovy中执行此操作的等效代码是什么?

示例Grails代码:

import grails.converters.*
render Airport.findByIata(params.iata) as XML
Run Code Online (Sandbox Code Playgroud)

tim*_*tes 6

这样做的一个简单例子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 ) )
Run Code Online (Sandbox Code Playgroud)

哪个应该打印:

<Airport><name>Manchester</name><code>MAN</code><id>1</id></Airport>
Run Code Online (Sandbox Code Playgroud)