JSON JOLT,取第一个数组,然后取第二个数组

irtuqstp  于 12个月前  发布在  其他
关注(0)|答案(4)|浏览(96)

我有个问题我有一个对象,我从其中获取数据,合并它,然后显示它,但现在我发现该对象可以复制,现在我需要合并一个对象的数据,然后为另一个对象。
下面是一个JSON输入:

{
  
}

以下是我创建的Jolt规范:

[
  {
   
    }
]

我得到了这个结果:

{
 
}
i7uaboj4

i7uaboj41#

下面的规范将为您工作。我假设只有当decision.value[0]= "01"时才需要显示值。如果不是这样的话请告诉我。

[
  {
    "operation": "modify-default-beta",
    "spec": {
      "X": {
        "Decisions": {
          "Decision": {
            "*": {
              "DetailsPensionPaymentPeriods": {
                "*": {
                  "PensionAmount": {
                    "bk34": "=concat(@(1,grossAmount),'; ',@(2,currency.value[0]),'; ',@(2,paymentFrequency.value[0]))"
                  }
                }
              }
            }
          }
        }
      }
    }
    },
  {
    "operation": "shift",
    "spec": {
      "@X.Decisions.Decision[0]": {
        "DetailsPensionPaymentPeriods": {
          "*": {
            "PensionAmount": {
              "@(3,decision.value[0])": {
                "01": {
                  "@(5,actualStartDatePensionPaymentsFromInstitution)": "p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[&4].bk33",
                  "@(2,bk34)": "p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[&4].bk34"
                }
              }
            }
          }
        }
      }
    }
  }
]

6ju8rftf

6ju8rftf2#

要实现合并多个对象的数据的预期结果,需要遍历Decision数组并创建多个输出对象。您可以使用Jolt的shift操作和循环结构来实现这一点。下面是修改后的JOLT规范,它应该给予您所需的结果:

[
  {
    "operation": "shift",
    "spec": {
      "X.Decisions.Decision[0].DetailsPensionPaymentPeriods": {
        "*": {
          "PensionAmount": {
            "grossAmount": "p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[&1].bk34",
            "currency": {
              "value": {
                "0": "p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[&1].bk34Currency"
              }
            },
            "paymentFrequency": {
              "value": {
                "0": "p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[&1].bk34Frequency"
              }
            }
          }
        }
      },
      "X.Decisions.Decision[0].actualStartDatePensionPaymentsFromInstitution": "p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[0].bk33"
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[0].bk34": "=concat(@(1,p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[0].bk34), ', ', @(2,p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[1].bk34))"
    }
  }
]
vcirk6k6

vcirk6k63#

您可以使用以下转换作为选项

[
  { // construct the innermost array "PaymentDetail"
    "operation": "shift",
    "spec": {
      "*": {
        "@Decisions.Decision": {
          "*": {
            "DetailsPensionPaymentPeriods": {
              "*": {
                "@2,actualStartDatePensionPaymentsFromInstitution": "PaymentDetail[&].bk33",
                "@PensionAmount.grossAmount": "PaymentDetail[&].bk34",
                "@currency.value|@paymentFrequency.value": {
                  "*": "PaymentDetail[&1].bk34"
                }
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*": {
          "*4": "=join('; ',@(1,&))" // semi-colon separartedly concatenate components of bk34
        }
      }
    }
  },
  { // add upper nodes to the "PaymentDetail" array
    "operation": "shift",
    "spec": {
      "@": "Y.awardedPensionDecisions.awardedPensionDecision.paymentDetails"
    }
  }
]

网站http://jolt-demo.appspot.com/上的***演示***是:

mspsb9vt

mspsb9vt4#

我真的不明白你在说明书上加的条件。我只是修改了你需要在现有的规范中的项目列表的部分。下面的规范可以进行更改。

[
  {
    "operation": "modify-default-beta",
    "spec": {
      "P6000": {
        "LocalCaseNumbers": {
          "LocalCaseNumber": {
            "*": {
              "Institution": {
                "bk31x": "=concat(@(1,institutionName),'; ',@(2,caseNumber),'; ',@(5,InsuredPerson.PersonIdentification.PINPersonInEachInstitution.PersonalIdentificationNumber[0].personalIdentificationNumber),'; ',@(5,AdditionalInformationDecision.dateWhenDecisionIssuedStatedDecision))"
              }
            }
          }
        },
        "Decisions": {
          "Decision": {
            "*": {
              "DetailsPensionPaymentPeriods": {
                "*": {
                  "PensionAmount": {
                    "bk34": "=concat(@(1,grossAmount),'; ',@(2,currency.value[0]),'; ',@(2,paymentFrequency.value[0]))"
                  }
                }
              }
            }
          }
        },
        "AdditionalInformationDecision": {
          "InformationRightAReview": {
            "WhereAddressReview": {
              "*": {
                "Institution": {
                  "bk38x": "=concat(@(1,institutionName),'; ',@(2,Address.street),'; ',@(2,Address.buildingName),'; ',@(2,Address.town),'; ',@(2,Address.postalCode),'; ',@(2,Address.country.value[0]))"
                }
              }
            }
          }
        },
        "Reductions": {
          "ReductionsPension": {
            "*": {
              "size1": "=size(@(1,pensionReducedPursuantOverlappingBenefitsSameKind))",
              "size2": "=size(@(1,pensionReducedPursuantOverlappingOrBenefitsOrIncome))"
            }
          }
        }
      }
    }
    },
  {
    "operation": "shift",
    "spec": {
      "@(0,P6000.Decisions.Decision[0].decision.value[0])": {
        "01": {
          "@(2,P6000.LocalCaseNumbers.LocalCaseNumber[0].Institution.bk31x)": "p1.awardedPensionDecisions.awardedPensionDecision.bk31",
          "@(2,P6000.Decisions.Decision[0].typePension.value[0])": {
            "01": {
              "#1": "p1.awardedPensionDecisions.awardedPensionDecision.bk32"
            },
            "02": {
              "#2": "p1.awardedPensionDecisions.awardedPensionDecision.bk32"
            },
            "03": {
              "#3": "p1.awardedPensionDecisions.awardedPensionDecision.bk32"
            },
            "04": {
              "#2": "p1.awardedPensionDecisions.awardedPensionDecision.bk32"
            },
            "05": {
              "#2": "p1.awardedPensionDecisions.awardedPensionDecision.bk32"
            },
            "06": {
              "#1": "p1.awardedPensionDecisions.awardedPensionDecision.bk32"
            }
          },
          "@(2,P6000.Decisions.Decision[0].DetailsPensionPaymentPeriods)": {
            "*": {
              "PensionAmount": {
                "@(6,P6000.Decisions.Decision[0].actualStartDatePensionPaymentsFromInstitution)": "p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[&2].bk33",
                "bk34": "p1.awardedPensionDecisions.awardedPensionDecision.paymentDetails.paymentDetail[&2].&"
              }
            }
          },
          "@(2,P6000.Decisions.Decision[0].awardBenefitArticle.value[0])": {
            "01": {
              "#4": "p1.awardedPensionDecisions.awardedPensionDecision.bk35"
            },
            "02": {
              "#5": "p1.awardedPensionDecisions.awardedPensionDecision.bk35"
            },
            "03": {
              "#6": "p1.awardedPensionDecisions.awardedPensionDecision.bk35"
            },
            "04": {
              "#6": "p1.awardedPensionDecisions.awardedPensionDecision.bk35"
            }
          },
          "@(2,P6000.Reductions.ReductionsPension[0].size1)": {
            "0": {
              "@(5,P6000.Reductions.ReductionsPension[0].size2)": {
                "0": {
                  "": "p1.awardedPensionDecisions.awardedPensionDecision.bk36"
                },
                "*": {
                  "#7": "p1.awardedPensionDecisions.awardedPensionDecision.bk36"
                }
              }
            },
            "*": {
              "#7": "p1.awardedPensionDecisions.awardedPensionDecision.bk36"
            }
          },
          "@(2,P6000.LocalCaseNumbers.LocalCaseNumber[0].country.value[0])": {
            "PL": {
              "#w każdym czasie": "p1.awardedPensionDecisions.awardedPensionDecision.bk37"
            },
            "*": {
              "": "p1.awardedPensionDecisions.awardedPensionDecision.bk37"
            }
          },
          "@(2,P6000.AdditionalInformationDecision.InformationRightAReview.WhereAddressReview[0].Institution.bk38x)": "p1.awardedPensionDecisions.awardedPensionDecision.bk38",
          "# ": "p1.awardedPensionDecisions.awardedPensionDecision. "
        },
        "02": {
          "@(2,P6000.LocalCaseNumbers.LocalCaseNumber[0].Institution.bk31x)": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk41",
          "@(2,P6000.Decisions.Decision[0].typePension.value[0])": {
            "01": {
              "#1": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk42"
            },
            "02": {
              "#2": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk42"
            },
            "03": {
              "#3": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk42"
            },
            "04": {
              "#2": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk42"
            },
            "05": {
              "#2": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk42"
            },
            "06": {
              "#1": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk42"
            }
          },
          "@(2,P6000.Decisions.Decision[0].RejectionReasons[0].rejectionReasons.value[0])": {
            "01": {
              "#4": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk43"
            },
            "02": {
              "#5": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk43"
            },
            "03": {
              "#6": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk43"
            },
            "04": {
              "#7": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk43"
            },
            "05": {
              "#8": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk43"
            },
            "06": {
              "#9": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk43"
            },
            "07": {
              "#10": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk43"
            },
            "08": {
              "#10": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk43"
            },
            "99": {
              "#10": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk43"
            }
          },
          "@(2,P6000.LocalCaseNumbers.LocalCaseNumber[0].country.value[0])": {
            "PL": {
              "#w każdym czasie": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk44"
            },
            "*": {
              "": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk44"
            }
          },
          "@(2,P6000.AdditionalInformationDecision.InformationRightAReview.WhereAddressReview[0].Institution.bk38x)": "p1.rejectedPensionDecisions.rejectedPensionDecision.bk45",
          "# ": "p1.rejectedPensionDecisions.rejectedPensionDecision. "
        }
      }
    }
    }
]

相关问题