我有一个输入JSON,如下所示。
{
"trackingNumber": "1ZEA83550362028861",
"localActivityDate": "20210324",
"localActivityTime": "183500",
"scheduledDeliveryDate": "20220525",
"actualDeliveryDate": "20220729",
"actualdeliveryTime": "183500",
"gmtActivityDate": "20210324",
"gmtActivityTime": "223500",
"activityStatus": {
"type": "G",
"code": "OR",
"description": "Origin Scan"
},
"activityLocation": {
"city": "RANDALLSTOWN,",
"stateProvince": "MD",
"postalCode": "21133",
"country": "US"
}
}
我已经为这个JSON编写了一个震动转换
[
{
"operation": "shift",
"spec": {
"trackingNumber": "transformedPayload.trackingInfo",
"localActivityDate": "tmp_Date",
"localActivityTime": "tmp_Time",
"scheduledDeliveryDate": "tmp_App",
"actualDeliveryDate": "tmp_Del_Date",
"actualdeliveryTime": "tmp_Del_Time",
"activityStatus": {
"type": "transformedPayload.events.type",
"code": "transformedPayload.events.statusCode",
"description": "transformedPayload.events.statusDescription"
},
"activityLocation": {
"city": "transformedPayload.address.city",
"stateProvince": "transformedPayload.address.state",
"postalCode": "transformedPayload.address.postalCode",
"country": "transformedPayload.address.country"
}
}
},
{
"operation": "modify-default-beta",
"spec": {
"tmp_Year": "=substring(@(1,tmp_Date),0,4)",
"tmp_Month": "=substring(@(1,tmp_Date),4,6)",
"tmp_Day": "=substring(@(1,tmp_Date),6,8)",
"tmp_Hours": "=substring(@(1,tmp_Time),0,2)",
"tmp_Minutes": "=substring(@(1,tmp_Time),2,4)",
"tmp_Seconds": "=substring(@(1,tmp_Time),4,6)",
"timeStamp": "=concat(@(1,tmp_Year),'-',@(1,tmp_Month),'-',@(1,tmp_Day),'T',@(1,tmp_Hours),':',@(1,tmp_Minutes),':',@(1,tmp_Seconds),'Z')",
"tmp_App_Year": "=substring(@(1,tmp_App),0,4)",
"tmp_App_Month": "=substring(@(1,tmp_App),4,6)",
"tmp_App_Day": "=substring(@(1,tmp_App),6,8)",
"appointmentTime": "=concat(@(1,tmp_App_Year),'-',@(1,tmp_App_Month),'-',@(1,tmp_App_Day))",
"tmp__Del_Year": "=substring(@(1,tmp_Del_Date),0,4)",
"tmp_Del_Month": "=substring(@(1,tmp_Del_Date),4,6)",
"tmp_Del_Day": "=substring(@(1,tmp_Del_Date),6,8)",
"tmp_Del_Hours": "=substring(@(1,tmp_Del_Time),0,2)",
"tmp_Del_Minutes": "=substring(@(1,tmp_Del_Time),2,4)",
"tmp_Del_Seconds": "=substring(@(1,tmp_Del_Time),4,6)",
"deliveryTime": "=concat(@(1,tmp__Del_Year),'-',@(1,tmp_Del_Month),'-',@(1,tmp_Del_Day),'T',@(1,tmp_Del_Hours),':',@(1,tmp_Del_Minutes),':',@(1,tmp_Del_Seconds),'Z')"
}
},
{
"operation": "remove",
"spec": {
"tmp_*": ""
}
}
]
这会将数据转换为这种格式。
{
"transformedPayload" : {
"trackingInfo" : "1ZEA83550362028861",
"events" : {
"type" : "G",
"statusCode" : "OR",
"statusDescription" : "Origin Scan"
},
"address" : {
"city" : "RANDALLSTOWN,",
"state" : "MD",
"postalCode" : "21133",
"country" : "US"
}
},
"timeStamp" : "2021-03-24T18:35:00Z",
"appointmentTime" : "2022-05-25",
"deliveryTime" : "2022-07-29T18:35:00Z"
}
我需要在转换中做什么更改,以便时间戳、约会时间和交货时间也嵌套在transformedPayload下,即它看起来像这样(正确的格式)。
{
"transformedPayload" : {
"trackingInfo" : "1ZEA83550362028861",
"events" : {
"type" : "G",
"statusCode" : "OR",
"statusDescription" : "Origin Scan"
},
"address" : {
"city" : "RANDALLSTOWN,",
"state" : "MD",
"postalCode" : "21133",
"country" : "US"
},
"timeStamp" : "2021-03-24T18:35:00Z",
"appointmentTime" : "2022-05-25",
"deliveryTime" : "2022-07-29T18:35:00Z"
}
}
这是我第一次做震动转换,所以我对如何解决这个问题感到困惑。任何帮助都很感激。
1条答案
按热度按时间42fyovps1#
你已经如此接近解决方案,我可以提供以下规格类似于你想要的输出: