我有个问题我有一个对象,我从其中获取数据,合并它,然后显示它,但现在我发现该对象可以复制,现在我需要合并一个对象的数据,然后为另一个对象。下面是一个JSON输入:
{ }
以下是我创建的Jolt规范:
[ { } ]
我得到了这个结果:
i7uaboj41#
下面的规范将为您工作。我假设只有当decision.value[0]= "01"时才需要显示值。如果不是这样的话请告诉我。
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" } } } } } } } } ]
6ju8rftf2#
要实现合并多个对象的数据的预期结果,需要遍历Decision数组并创建多个输出对象。您可以使用Jolt的shift操作和循环结构来实现这一点。下面是修改后的JOLT规范,它应该给予您所需的结果:
shift
[ { "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))" } } ]
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/上的***演示***是:
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. " } } } } ]
4条答案
按热度按时间i7uaboj41#
下面的规范将为您工作。我假设只有当
decision.value[0]= "01"
时才需要显示值。如果不是这样的话请告诉我。6ju8rftf2#
要实现合并多个对象的数据的预期结果,需要遍历Decision数组并创建多个输出对象。您可以使用Jolt的
shift
操作和循环结构来实现这一点。下面是修改后的JOLT规范,它应该给予您所需的结果:vcirk6k63#
您可以使用以下转换作为选项
网站http://jolt-demo.appspot.com/上的***演示***是:
mspsb9vt4#
我真的不明白你在说明书上加的条件。我只是修改了你需要在现有的规范中的项目列表的部分。下面的规范可以进行更改。