Преобразование массива объектов с вложенными объектами массива с помощью JOLT - PullRequest
2 голосов
/ 24 апреля 2019

Я хочу преобразовать следующий входной JSON в выходной формат JSON

ВХОД JSON:

[
  {
    "orderNumber": "201904-000000001",
    "items": [
      {
        "itemPrice": 40000,
        "itemQuantity": 11,
        "item": {
          "external_id": "IPHONE"
        }
      },
      {
        "itemPrice": 25000,
        "itemQuantity": 22,
        "item": {
          "external_id": "ONEPLUS"
        }
      },
      {
        "itemPrice": 35000,
        "itemQuantity": 33,
        "item": {
          "external_id": "SAMSUNGS10"
        }
      }
    ]
  }
]

ВЫХОД JSON:

[{
  "orderNumber" : "201904-000000001",
  "items" : [ {
    "itemQuantity" : 11,
    "external" : "IPHONE"
  } ]
},
{
  "orderNumber" : "201904-000000001",
  "items" : [ {
    "itemQuantity" : 22,
    "external" : "ONEPLUS"
  } ]
},
{
  "orderNumber" : "201904-000000001",
  "items" : [ {
    "itemQuantity" : 33,
    "external" : "SAMSUNGS10"
  } ]
}]

Я пробовал следовать спецификации, которая не работает ... может кто-нибудь подсказать мне о спецификации, которую я должен использовать и объяснить каждый шаг, если это возможно, если вложенные массивы и объекты еще глубже, как конвертировать

СПЕЦ, который Я ИСПОЛЬЗУЛ:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "orderNumber": "[&1].orderNumber",
        "items": {
          "*": {
            "itemQuantity": "[&1].items[].itemQuantity",
            "item": {
              "external_id": "[&1].items[].external"
            }
          }
        }
      }
    }
}
]

1 Ответ

0 голосов
/ 26 апреля 2019

Спасибо, ребята, следующие спецификации сработали для меня после попытки различных комбинаций.Если кто-нибудь сталкивается с этим вопросом, пожалуйста, объясните мне ответ, чтобы не пытаться использовать комбинации в следующий раз

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "orderNumber": "[&1].orderNumber",
        "items": {
          "*": {
            "itemQuantity": "[&3].items[&1].itemQuantity",
            "item": {
              "external_id": "[&4].items[&2].external"
            }
          }
        }
      }
    }
}
]
...