[英]Jolt Transformation required from input json
我想使用 JOLT Spec 進行 JSON 到 JSON 轉換。 我的輸入是 Flattern JSOn,我想將其轉換為嵌套的 JSOn。 我為此編寫了 JOLT 規范,並在下面提到。 但它並沒有像預期的那樣給我想要的 output 。
這是我的輸入 Json
{
"gsiOrderNumber" : "1234567890",
"orderType" : "PULL",
"enteredDate" : "20200513021720",
"customerFacilityCode" : "WK",
"customerCode" : "Y302",
"preferredWarehouseId" : "MWLC",
"warehouseId" : "MWLC",
"dtCode" : "DT",
"customerPoNumber" : "PO123",
"customerPoType" : "POType",
"rushFlag" : "1",
"esoNumber" : "SZXMF00",
"serialNumber" : "CP900324",
"mitSect" : "39704",
"mitAccNo" : "1023",
"mitOrderNumber" : "36560",
"mitRemarks" : "MIT/41 UPSGRND",
"mitPriorityIndicator" : "Y",
"mitBillingFacility" : "12345",
"OrderDetail" : [ {
"gsiOrderNumber" : "000001234567890",
"orderLineNumber" : "225266301",
"partNumber" : "9780312606121",
"orderQuantity" : "4",
"exactQuantityFlag" : "F",
"earlyShipDate" : "20200513021720",
"lateShipDate" : "20200513021720",
"orderMethod" : "P",
"deliverToDockBuilding" : "H",
"deliverToDockArea" : "H",
"deliverToBuilding" : "H",
"deliverToArea" : "07D",
"deliverToCoordinates" : "H07DBR1702",
"deliverToDropZoneBuilding" : "HZ",
"deliverToDropZoneArea" : "HZ",
"jitCallNumber" : "1234",
"kanbanNumber" : "1234",
"startOnLineDate" : "20200513021720",
"buildDate" : "20200513021720",
"transactionNumber" : "1234101"
}, {
"gsiOrderNumber" : "000001234567890",
"orderLineNumber" : "225266301",
"partNumber" : "9780312606121",
"orderQuantity" : "4",
"exactQuantityFlag" : "F",
"earlyShipDate" : "20200513021720",
"lateShipDate" : "20200513021720",
"orderMethod" : "P",
"deliverToDockBuilding" : "H",
"deliverToDockArea" : "H",
"deliverToBuilding" : "H",
"deliverToArea" : "07D",
"deliverToCoordinates" : "H07DBR1702",
"deliverToDropZoneBuilding" : "HZ",
"deliverToDropZoneArea" : "HZ",
"jitCallNumber" : "1234",
"kanbanNumber" : "1234",
"startOnLineDate" : "20200513021720",
"buildDate" : "20200513021720",
"transactionNumber" : "1234101"
} ]
}
所需 Output
{
"OrderInfo": [
{
"OrderHeader": {
"gsiOrderNumber": "1234567890",
"orderType": "PULL",
"enteredDate": "20200513021720",
"customerFacilityCode": "WK",
"customerCode": "Y302",
"preferredWarehouseId": "MWLC",
"warehouseId": "MWLC",
"dtCode": "DT",
"customerPoNumber": "PO123",
"customerPoType": "POType",
"rushFlag": "1",
"esoNumber": "SZXMF00",
"serialNumber": "CP900324",
"mitSect": "39704",
"mitAccNo": "1023",
"mitOrderNumber": "36560",
"mitRemarks": "MIT/41 UPSGRND",
"mitPriorityIndicator": "Y",
"mitBillingFacility": "12345"
},
"OrderDetail": [
{
"gsiOrderNumber": "000001234567890",
"orderLineNumber": "225266301",
"partNumber": "9780312606121",
"orderQuantity": "4",
"exactQuantityFlag": "F",
"earlyShipDate": "20200513021720",
"lateShipDate": "20200513021720",
"orderMethod": "P",
"deliverToDockBuilding": "H",
"deliverToDockArea": "H",
"deliverToBuilding": "H",
"deliverToArea": "07D",
"deliverToCoordinates": "H07DBR1702",
"deliverToDropZoneBuilding": "HZ",
"deliverToDropZoneArea": "HZ",
"jitCallNumber": "1234",
"kanbanNumber": "1234",
"startOnLineDate": "20200513021720",
"buildDate": "20200513021720",
"transactionNumber": "1234101"
},
{
"gsiOrderNumber": "000001234567890",
"orderLineNumber": "225266301",
"partNumber": "9780312606121",
"orderQuantity": "4",
"exactQuantityFlag": "F",
"earlyShipDate": "20200513021720",
"lateShipDate": "20200513021720",
"orderMethod": "P",
"deliverToDockBuilding": "H",
"deliverToDockArea": "H",
"deliverToBuilding": "H",
"deliverToArea": "07D",
"deliverToCoordinates": "H07DBR1702",
"deliverToDropZoneBuilding": "HZ",
"deliverToDropZoneArea": "HZ",
"jitCallNumber": "1234",
"kanbanNumber": "1234",
"startOnLineDate": "20200513021720",
"buildDate": "20200513021720",
"transactionNumber": "1234101"
}
]
}
]
}
我正在使用以下 JOLT 規范
[
{
"operation": "shift",
"spec": {
"*": {
"*": "&"
}
}
}
]
但是我沒有得到想要的 output。 請問有人可以幫我解決這個問題嗎?
提前致謝....
低於規格的作品,
對於OrderHeader
,將所有節點轉移到OrderHeader
,然后從其結果中刪除OrderDetails
。
[
{
"operation": "shift",
"spec": {
"OrderDetail": {
"@1": "OrderInfo[#1].OrderHeader",
"@": "OrderInfo[#1].OrderDetail"
}
}
}, {
"operation": "remove",
"spec": {
"OrderInfo": {
"*": {
"OrderHeader": {
"OrderDetail": ""
}
}
}
}
}
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.