【问题标题】:Is there a pattern to convert dynamically between formats?是否有在格式之间动态转换的模式?
【发布时间】:2019-06-27 09:33:39
【问题描述】:

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

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

然后使用他们给我的输出进行转换和处理,最后将它们发送回相同或另一个源/格式/结构。是否有一种模式可以帮助解决这种情况并使其尽可能抽象,这样我就可以切换对象,无论来源和结构如何?响应对象始终是一种集合形式:JSONArray with multiple Objects, 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)
}

我想我只是有一种大脑迟滞,但我只是没有在脑海中得到答案。感谢您的帮助。

【问题讨论】:

  • Underscore-java 库有静态方法 U.xmlToJson(xml) 和 U.jsonToXml(json)。

标签: java json xml etl


【解决方案1】:

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

例如,您可以像这样构建管道

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多