Добавить массив внутри объекта с тем же ключом в спецификации толчка - PullRequest
0 голосов
/ 18 октября 2019

Я хотел бы переместить массив рекомендаций по ключу row_id внутри инвесторов с тем же row_id

Оригинал Json

{
  "investors": [
    {
      "row_id": 1,
      "name": "AAAA"
    },
    {
      "row_id": 2,
      "name": "BBBB"
    }
  ],
  "recommendations": [
    {
      "row_id": "1",
      "title": "ABC"
    },
    {
      "row_id": "2",
      "title": "CDE"
    }
  ]
}

Я пробовал много спецификаций на https://jolt -demo.appspot.com безуспешно

Спецификации пробовали ...

[{
  "operation": "shift",
  "spec": {
    "investors": {
      "*": "investors[]"
    },
    "recommendations": {
      "@": "recommendations[]"
    }
  }
}]

Желаемый Json

{
  "investors": [
    {
      "row_id": 1,
      "name": "AAAA",
      "recommendations":[{
          "row_id": "1",
          "title": "ABC"   
      }]
    },
    {
      "row_id": 2,
      "name": "BBBB",
      "recommendations":[{
          "row_id": "2",
          "title": "CDE"   
      }]
    }
  ]
}

1 Ответ

1 голос
/ 21 октября 2019

Это можно сделать в две ступени смены

Первая смена группирует все, основываясь на row_id.

(я бы посоветовал запустить свою первую смену, чтобы посмотреть, что получится)

Вторая смена использует этот сгруппированный вывод и форматирует результаты.

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "row_id": {
            "*": {
              "@2": "&.&4"
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "investors": "investors.[#2]",
        "recommendations": "investors.[#2].recommendations[]"
      }
    }
  }
]
...