当前位置: 首页 > 知识库问答 >
问题:

JOLT 变换阵列

郑宏朗
2023-03-14

我目前有点卡住了,我需要使用JOLT转换JSON,但就我而言,我无法获得与我一起工作的数据/结构。

我有以下需要转换的数据集:

{
  "policynumber": "12344",
  "registrationnumber": "TST001",
  "idnumber": "1234567890",
  "policyholder": "Tst Me",
  "policyfromdate": "2021-10-11",
  "policytodate": "2021-10-31",
  "ispolicyvalid": "Yes",
  "policyproductcode": "TST111",
  "policyproductdescription": "New Product",
  "item_parent_section": "Risk",
  "item_subsection_extension": "Risk2",
  "item_original_start_date": "2021-10-11",
  "item_status": "Active",
  "item_sum_insured": "5000",
  "item_description": "Personal Effects",
  "item_asset_no": "ALL0002"
}

预期的结果应该是这样的:

{
  "policyNumber": "12344",
  "registrationNumber": "TST001",
  "idNumber": "1234567890",
  "policyholder": "Tst Me",
  "policyFromDate": "2021-10-11",
  "policyToDate": "2021-10-31",
  "isPolicyValid": "Yes",
  "policyProductCode": "TST111",
  "policyProductDescription": "New Product",
  "riskCategories": {
    "item_parent_section": "Risk",
    "item_subsection_extension": "Risk2",
    "riskItemAllRisk": [
      {
        "item_status": "Active",
        "item_description": "Personal Effects",
        "item_sum_insured": "5000",
        "item_original_start_date": "2021-10-11",
        "item_asset_no": "ALL0002"
      }
    ]
  }
}

我可能在我想要的结果中犯了一个错误,但基本上,“riskItemAllRisk”部分需要在一个数组中。

我正在进行的JOLT转换是:

[
  {
    "operation": "shift",
    "spec": {
      "policynumber": "policyNumber",
      "registrationnumber": "registrationNumber",
      "idnumber": "idNumber",
      "policyholder": "policyholder",
      "policyfromdate": "policyFromDate",
      "policytodate": "policyToDate",
      "ispolicyvalid": "isPolicyValid",
      "policyproductcode": "policyProductCode",
      "policyproductdescription": "policyProductDescription"
    }
  },
  {
    "operation": "default",
    "spec": {
      "riskCategories": {
        "item_parent_section": "itemparentsection",
        "item_subsection_extension": "itemsubsectionextension"
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "riskItemAllRisk[]": {
        "0": {
          "item_original_start_date": "2021-10-11",
          "item_status": "item_status",
          "item_sum_insured": "item_sum_insured",
          "item_description": "item_description",
          "item_asset_no": "item_asset_no"
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "idNumber": "=toString"
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "itemsuminsured": "=toString"
    }
  }
]

为可怕的代码道歉,但这对我来说是第一次。

谢谢。

共有1个答案

翟越
2023-03-14

一次换班转换就足够了,比如

[
  {
    "operation": "shift",
    "spec": {
      "policynumber": "&",
      "registrationnumber": "&",
      "idnumber": "&",
      "policyholder": "&",
      "policyfromdate": "&",
      "policytodate": "&",
      "ispolicyvalid": "&",
      "policyproductcode": "&",
      "policyproductdescription": "&",
      "item_parent_section": "riskCategories.&",
      "item_subsection_extension": "riskCategories.&",
      "*": "riskCategories.riskItemAllRisk[0].&"
    }
  }
]

其中item_parent_sectionitem_subsection_extension属性的值首先用 riskCateleories限定,数组的其余元素用 riskCategories.riskItemAllRisk[0]

 类似资料:
  • 我正在尝试使用 Jolt 从一个 JSON 数组转换为另一个数组。它由一个没有键的嵌套 JSON 数组组成。 这是我的意见: 我想得到以下输出: 我能够使用此规范文件为单个嵌套数组元素添加键: 但我不知道如何将此应用于外部JSON数组。

  • 我正在尝试使用nifi joltTransformjson来转换我的JSON。我正在使用这个网站http://jolt-demo.appspot.com/#modify-stringFunctions 我有一个JSON 我的颠簸规格是 电流输出为 想要的输出是 请帮忙。我试了这么多组合,但我似乎想不通。

  • 我正在将Jolt应用于NiFi,但没有得到预期的结果。 后果 颠簸 我需要一个只有一级的json

  • 变换矩阵 之前三节所说的坐标变换的三种方式——平移translate(),缩放scale(),以及旋转rotate()都可以通过transform()做到。 在介绍矩阵变换transform()前,我们来说一说什么是变换矩阵。 以上是Canvas中transform()方法所对应的变换矩阵。而此方法正是传入图中所示的六个参数,具体为context.transform(a,b,c,d,e,f)。 各

  • 我正在尝试使用Jolt进行从顶级json数组到另一个数组的复杂转换。在每个项目中,我都有几个需要映射到另一个的对象。当它是简单的字符串时,我可以很容易地映射它们,但当它是关于对象到对象的时,我无法找到如何进行映射。在下面的示例中,我想从客户对象中提取数据。我想为其他几个人做这件事,比如地址和order_items这是我的输入: 这是规格文件 目前,我的输出是 我希望这样: 有人知道怎么做吗? 更新