是否有一种模式可以在格式之间动态转换?
Is there a pattern to convert dynamically between formats?
我的任务是创建一个管道来转换不同类型的输入,例如:
- RESTful[JSON, XML, ...]
- 套接字[JSON、XML、...]
- 关系型数据库
- ...
然后使用他们给我的输出进行转换和操作,最后将它们发送回相同或另一个 source/format/structure。有没有一种模式可以帮助解决这种情况并使其尽可能抽象,因此无论来源和结构如何,我都可以切换对象?响应对象始终是一种集合形式:JSONArray with multiple Objects, ResultSet, ...
我的想法是创建一个 'adapter class',它能够接受 JSON 字符串、XML 字符串甚至 RDBMS 数据集,这样我就可以使用这个适配器对象然后将其转换回另一个结构:JSON String, 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)
}
我想我只是脑子有点迟钝,但我脑子里想不出答案。感谢您的帮助。
您描述的内容可以通过 Apache Camel. It can consume data from different sources REST, JDBC and many other 这样的集成框架来完成。此外,它可以将数据 to/from 转换为任何格式,因此它是高度可定制的。
例如,您可以像这样构建管道
read data from a REST endpoint -> unmarchall JSON to POJO class -> do some transformation -> marshall POJO to XML -> send data to another service
我的任务是创建一个管道来转换不同类型的输入,例如:
- RESTful[JSON, XML, ...]
- 套接字[JSON、XML、...]
- 关系型数据库
- ...
然后使用他们给我的输出进行转换和操作,最后将它们发送回相同或另一个 source/format/structure。有没有一种模式可以帮助解决这种情况并使其尽可能抽象,因此无论来源和结构如何,我都可以切换对象?响应对象始终是一种集合形式:JSONArray with multiple Objects, ResultSet, ...
我的想法是创建一个 'adapter class',它能够接受 JSON 字符串、XML 字符串甚至 RDBMS 数据集,这样我就可以使用这个适配器对象然后将其转换回另一个结构:JSON String, 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)
}
我想我只是脑子有点迟钝,但我脑子里想不出答案。感谢您的帮助。
您描述的内容可以通过 Apache Camel. It can consume data from different sources REST, JDBC and many other 这样的集成框架来完成。此外,它可以将数据 to/from 转换为任何格式,因此它是高度可定制的。
例如,您可以像这样构建管道
read data from a REST endpoint -> unmarchall JSON to POJO class -> do some transformation -> marshall POJO to XML -> send data to another service