【问题标题】:Data mapping without coding [closed]无需编码的数据映射[关闭]
【发布时间】:2019-08-30 00:49:11
【问题描述】:

通过映射文件从源消息构造目标消息的最快方法是什么?

这样的集成任务对于商业应用程序来说很常见,但我不知道任何通用方法。使用对象映射库(如MapStruct 或ModelMapper)对它们进行编码——这不是在浪费开发人员的时间,而且是愚蠢的例行公事吗?

分析师可以成功完成这项工作:在json中创建任何简单数据映射,发送到集成服务并检查目标消息格式。 但是为了这个目的,我只找到了像 Altova MapForce (modeler&server) 或 IBM Integration Bus data graphical editor 这样的大型非免费解决方案。

您如何解决项目中的此类任务?

更新

我们为问题选择的映射格式(包括嵌套、数组、规则):

{
  "camunda.Form": {
    "blockA": {
      "FullName": "QuestionareResEntity.FullName.data",
      "RTOPA1TF": "QuestionnaireResEntity.ResTypeOfPaymentAgents.data || CONTAIN || ID1",
      "RTOPA2TF": "QuestionnaireResEntity.ResTypeOfPaymentAgents.data || YOUR_RULE || Param1,Param2,Param3",
    },
    "blockB": {
      "ColExMan": "InfoAboutGovernment.CollegialExecutiveManagement.data || DICT || CollegialExecutiveManagementDictionary"
    },
    "LEResColManag.row[].cells": {
      "FName": "TableLERes3[].FullName.data",
      "Citiz": "TableLERes3[].Citizenship.data",
      "RegAddress": "TableLERes3[].RegistrationAdress.data",
    }
  }
}

您觉得它的便利性和可读性如何?

欣赏您的想法和想法。

【问题讨论】:

  • 不要认为有任何库/工具可以解决这个问题;但它可以很容易地用 groovy、JS 等动态语言编写。
  • 您好,@SatyendraKumar,谢谢。请在下面查看我对克里斯的评论。
  • @SatyendraKumar,如果你这么认为,请投票支持重新开放
  • @ChrisF,我在阅读了帮助中心的建议后编辑了帖子 - 请问可以重新打开吗?

标签: java json mapping integration analytics


【解决方案1】:

您可以通过免费的自动转换器将 JSON 转换为 XML。然后在转换后的 XML 上使用带有 XSLT 和 XPath 的经典方式以与您列出的类似方式转换数据。有很多免费的工具、图形编辑器和库用于 XML。

【讨论】:

  • 嗨,克里斯,谢谢。好的,所以它必须是一段代码,是吗?是否会为新映射编写一次或每次?如果它只写一次 - 所以解决方案是图书馆/服务。我不敢相信这样的库(经过良好测试)还不存在。 或者,其他开发人员可以通过其他方式解决此类任务!这就是我的问题。
  • @DanBrandt 您必须以某种方式给出规则并告诉 JSON 输出属性的名称,就像上面的示例一样。如果您认为这是一段代码,那么是的。我将程序视为进行转换的代码,而不是规则集 (XSLT) 本身。此 XSLT 将获取您的 XML 输入并将其转换为所需的 JSON。换句话说:同一个 XSLT 可以接受不同的输入数据并相应地产生不同的输出数据,无需每次都更改 XSLT。但是如果你想改变规则,那么你当然必须改变 XSLT。
  • @DanBrandt 关于其他方式:如果规则不复杂,那么您可以使用简单的查找/替换命令在内部记录一个 word-macro(或 notepad++ 或任何其他有能力的编辑器中的宏)并运行它在你的 JSON 上。不需要编码知识,但是替换命令的正则表达式知识将非常有助于解决更复杂的替换。从旧系统迁移到新系统时,我多次这样做以转换数据。
  • 感谢您的回答-在您的帮助下,我找到了 JOLT (github.com/bazaarvoice/jolt) 库-“xslt for json”。它对于此类任务非常强大。也许对你也有帮助
猜你喜欢
  • 2015-02-20
  • 1970-01-01
  • 2019-02-12
  • 2011-01-28
  • 2014-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-05
相关资源
最近更新 更多