簡體   English   中英

輸入 json 需要震動轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM