是否有一种模式可以在格式之间动态转换?

时间:2019-06-27 09:33:39

标签: java json xml etl

我的任务是创建一个管道,用于转换不同类型的输入,例如:

  • RESTful [JSON,XML,...]
  • 套接字[JSON,XML,...]
  • RDBMS
  • ...

然后使用它们给我的输出进行转换和处理,最后将它们发送回相同或另一个源/格式/结构。是否有一种模式可以在这种情况下提供帮助并使其尽可能抽象,所以无论源和结构如何,我都可以切换对象?响应对象始终是集合的一种形式:JSONArray具有多个Object,ResultSet,...

我的想法是创建一个“适配器类”,它能够接受JSON字符串,XML字符串甚至RDBMS数据集,因此我可以使用此适配器对象,然后将其转换回另一个结构:JSON字符串,DataSet,...

class AdapterClass
{
    //how could it look like?
}

class AdapterClassFactory
{
    //input
    public AdapterClass generateByJSONString(String input)
    public AdapterClass generateByXMLString(String input)
    public AdapterClass generateByResultSet(ResultSet input)
    public AdapterClass generateByCSV(String input)

    //output
    public String generateJSONString(AdapterClass input)
    public String generateXMLString(AdapterClass input)
    public ResultSet generateResultSet(AdapterClass input)
    public String generateCSV(AdapterClass input)
}

我认为我只是有点大脑滞后,但是我只是不知道答案。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您要描述的内容可以通过Apache Camel之类的集成框架来完成。它可以消耗来自不同来源RESTJDBCmany other的数据。此外,它可以将数据转换为任何格式或从任何格式转换数据,因此高度可自定义。

例如,您可以建立类似

的管道
  

从REST端点读取数据->将JSON分解为POJO类->做一些转换->将POJO编组为XML->将数据发送到另一个服务