【问题标题】:JOLT Transform ArraysJOLT 变换数组
【发布时间】:2021-12-15 06:33:56
【问题描述】:

我目前有点卡住了,我需要使用 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"
    }
  }
]

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

谢谢。

【问题讨论】:

    标签: json jolt


    【解决方案1】:

    一个班次转换就足够了,例如

    [
      {
        "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 属性的值首先由riskCategories 限定,数组的其余元素由riskCategories.riskItemAllRisk[0] 限定

    【讨论】:

    • 非常感谢,100% 成功
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多