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

标签 java json xml etl

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

  • RESTful[JSON、XML、...]
  • 套接字 [JSON、XML、...]
  • 关系数据库管理系统
  • ...

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

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

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)
}

我想我只是脑子有点滞后,但我脑子里就是找不到答案。感谢您的帮助。

最佳答案

您所描述的内容可以通过像 Apache Camel 这样的集成框架来完成。它可以使用来自不同来源的数据REST , JDBCmany other 。此外,它可以将数据转换为任何格式或从任何格式转换数据,因此它是高度可定制的。

例如,您可以构建一个类似的管道

read data from a REST endpoint -> unmarchall JSON to POJO class -> do some transformation -> marshall POJO to XML -> send data to another service

关于java - 是否有一种可以在格式之间动态转换的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56788090/

相关文章:

python - 无法解析 JSON 文件和设计查询中的值

java - JAXB 如何推进 XMLStreamReader?

java - 如何避免 Java 中的 StringBuilder 或 String 内存不足

java - 我可以在运行时更改 Android 应用程序样式吗?

java - 如何确定 eclipse 用于启动我的 java 程序的命令字符串?

java - 在Linux上部署java程序

json - Restful api 不显示来自 mongodb 的数据

json - Swift 2.0 JSON 字符串到 JSON

java - 如何在jsoup中使用OR运算?

java - Spring 3.1 entityManagerFactory java.lang.NoSuchFieldError : NULL Error