Talend-如何在单独的json输出中分离json数组元素?

时间:2019-12-18 12:09:51

标签: arrays json talend

我正在尝试使用“ Talend Open Studio-数据集成”工具实现以下目标。 我有一个输入json文件,其中包含对象的数组元素。数组中的元素数量从0到最大为15。

我需要创建与数组中的元素一样多的输出json。每个输出还将包含来自输​​入json的公共元素。

是否可以创建多个输出-每个输出包含数组的一个元素?

输入JSON

{
  "id" : "c064e784-5d3b-4d78-9451-eae608ad66a9",
  "format" : "AVRO",
  "EventMessage" : {
    "SourceSystem" : {
      "eventOccurredTime" : "10-04-0009",
      "id" : 1,
      "name" : "FAST",
      "sourceCorrelationId" : "bac5de63-ba46-4aaf-a508-101f41a22d1e"
    },
    "Domain" : {
      "id" : 1,
      "name" : "Policy",
      "type" : "Raw"
    },
    "EventAttributes" : {
      "id" : "522533ce-fe82-4e73-bfbc-52cacb2c7903",
      "msgType" : "Raw",
      "correlationId" : "bac5de63-ba46-4aaf-a508-101f41a22d1e",
      "eventCreatedTime" : "10-06-0016",
      "eventName" : "PolicyFinancialTrx",
      "parentEventName" : "FastFinancialTrx",
      "parentEventOccurredTime" : "10-04-0009",
      "DataElements" : {
        "TrxHdrDisburse" : {
          "TaxDtl" : [ {
            "ID" : "d42f00f2-2f70-4fed-bcb3-035b2d1febbd",
            "DisbHdrID" : "f3b1ee06-fe01-470d-ae59-e1372788d11b",
            "DeductionType" : "FederalTax",
            "TaxDedPct" : "0",
            "TaxDedAmt" : "0",
            "TaxableGain" : "0",
            "WithholdAmt" : "0",
            "TaxDtlParty" : {
              "TaxDtlID" : "d42f00f2-2f70-4fed-bcb3-035b2d1febbd",
              "PartyID" : "260bebec-d70f-4d69-b702-817e12acffbe",
              "CustomerProfileGUID" : "260bebec-d70f-4d69-b702-817e12acffbe",
              "BeneficiaryGUID" : "260bebec-d70f-4d69-b702-817e12acffbe"
            }
          }, {
            "ID" : "eb333766-51fa-4b0c-99a8-a30c0379d454",
            "DisbHdrID" : "f3b1ee06-fe01-470d-ae59-e1372788d11b",
            "DeductionType" : "StateTax",
            "TaxDedPct" : "0",
            "TaxDedAmt" : "0",
            "TaxableGain" : "0",
            "WithholdAmt" : "0",
            "TaxDtlParty" : {
              "TaxDtlID" : "eb333766-51fa-4b0c-99a8-a30c0379d454",
              "PartyID" : "260bebec-d70f-4d69-b702-817e12acffbe",
              "CustomerProfileGUID" : "260bebec-d70f-4d69-b702-817e12acffbe",
              "BeneficiaryGUID" : "260bebec-d70f-4d69-b702-817e12acffbe"
            }
          } ]
      }
    }
  }
}

预期输出-每个数组元素一个

{
  "id" : "c064e784-5d3b-4d78-9451-eae608ad66a9",
  "format" : "AVRO",
  "EventMessage" : {
    "SourceSystem" : {
      "eventOccurredTime" : "10-04-0009",
      "id" : 1,
      "name" : "FAST",
      "sourceCorrelationId" : "bac5de63-ba46-4aaf-a508-101f41a22d1e"
    },
    "Domain" : {
      "id" : 1,
      "name" : "Policy",
      "type" : "Raw"
    },
    "EventAttributes" : {
      "id" : "522533ce-fe82-4e73-bfbc-52cacb2c7903",
      "msgType" : "Raw",
      "correlationId" : "bac5de63-ba46-4aaf-a508-101f41a22d1e",
      "eventCreatedTime" : "10-06-0016",
      "eventName" : "PolicyFinancialTrx",
      "parentEventName" : "FastFinancialTrx",
      "parentEventOccurredTime" : "10-04-0009",
      "DataElements" : {
        "TrxHdrDisburse" : {
          "TaxDtl" : {
            "ID" : "d42f00f2-2f70-4fed-bcb3-035b2d1febbd",
            "DisbHdrID" : "f3b1ee06-fe01-470d-ae59-e1372788d11b",
            "DeductionType" : "FederalTax",
            "TaxDedPct" : "0",
            "TaxDedAmt" : "0",
            "TaxableGain" : "0",
            "WithholdAmt" : "0",
            "TaxDtlParty" : {
              "TaxDtlID" : "d42f00f2-2f70-4fed-bcb3-035b2d1febbd",
              "PartyID" : "260bebec-d70f-4d69-b702-817e12acffbe",
              "CustomerProfileGUID" : "260bebec-d70f-4d69-b702-817e12acffbe",
              "BeneficiaryGUID" : "260bebec-d70f-4d69-b702-817e12acffbe"
            }
          }
        }
      }
    }
  }
}

AND

{
  "id" : "c064e784-5d3b-4d78-9451-eae608ad66a9",
  "format" : "AVRO",
  "EventMessage" : {
    "SourceSystem" : {
      "eventOccurredTime" : "10-04-0009",
      "id" : 1,
      "name" : "FAST",
      "sourceCorrelationId" : "bac5de63-ba46-4aaf-a508-101f41a22d1e"
    },
    "Domain" : {
      "id" : 1,
      "name" : "Policy",
      "type" : "Raw"
    },
    "EventAttributes" : {
      "id" : "522533ce-fe82-4e73-bfbc-52cacb2c7903",
      "msgType" : "Raw",
      "correlationId" : "bac5de63-ba46-4aaf-a508-101f41a22d1e",
      "eventCreatedTime" : "10-06-0016",
      "eventName" : "PolicyFinancialTrx",
      "parentEventName" : "FastFinancialTrx",
      "parentEventOccurredTime" : "10-04-0009",
      "DataElements" : {
        "TrxHdrDisburse" : {
          "TaxDtl" :  {
            "ID" : "eb333766-51fa-4b0c-99a8-a30c0379d454",
            "DisbHdrID" : "f3b1ee06-fe01-470d-ae59-e1372788d11b",
            "DeductionType" : "StateTax",
            "TaxDedPct" : "0",
            "TaxDedAmt" : "0",
            "TaxableGain" : "0",
            "WithholdAmt" : "0",
            "TaxDtlParty" : {
              "TaxDtlID" : "eb333766-51fa-4b0c-99a8-a30c0379d454",
              "PartyID" : "260bebec-d70f-4d69-b702-817e12acffbe",
              "CustomerProfileGUID" : "260bebec-d70f-4d69-b702-817e12acffbe",
              "BeneficiaryGUID" : "260bebec-d70f-4d69-b702-817e12acffbe"
            }
          } 
        }
      }
    }
  }
}

谢谢

0 个答案:

没有答案