如何使用velocity模板将xml转换为Json?

时间:2014-05-15 09:50:59

标签: xml json apache-camel velocity

我有一个Apache camel应用程序,可以在休息服务和Web服务之间进行调解。休息服务是呼叫者,Web服务是后端。我已经取得了进展,直到我从Web服务获得响应,并将其转换为xml。现在我必须以特定格式(比如使用一些额外的事务和会话ID)向我的调用者发送JSON响应,从xml中提取数据。我可以选择哪些选项?是否有任何可用的工具可以使用XSD创建脚本化的JSON模板,或者我必须手动编写脚本?如果我们必须使用第二个选项,我必须使用什么脚本语言?

换句话说,我想编写一个从xml文件中提取数据的速度模板。我不确定这样做的最佳方法是什么。

提前感谢你。

1 个答案:

答案 0 :(得分:0)

我的意见是你应该首先将你的XML转换为DTO,然后将你的DTO转换为Json。您应该在多个层中拆分您的架构。数据访问层将处理WS调用,控制器将知道如何应答REST调用。 Velocity只是一个模板引擎,而不是转换工具。你应该检查Jackson或Gson。希望这有帮助

编辑:如果你想要一个特定的DTO格式,你可以扩展Jacksons转换器,或者如果你只想使用Velocity,只需渲染它将你的DTO放在VelocityContext中,然后就像你一直使用它一样,但我不要认为这是最好的方法。