Как превратить элементы массива в объект в SnapLogic - PullRequest
0 голосов
/ 11 марта 2020

В SnapLogi c у меня есть вход JSON, как показано ниже, он выглядит как массив. Я пытаюсь поместить его в структуру, где это объект с именем «remitLocations» состоит из массива адресов, содержащих следующие элементы. Я пытался использовать маппер и структурные привязки, чтобы сделать это. Я также пытался использовать генераторы JSON и XML, чтобы придать ему желаемую структуру, но пока ничего не получалось.

[
  {
    "addressInternalid": 2631363,
    "isDelete": false,
    "internalSupplierid": 3423589,
    "acctGrpid": "RT",
    "address1": "5309 GREENWAY",
    "address2": "5301 REDWAY",
    "address3": "5504 BLUEWAY",
    "poBox": "0912KHJWD",
    "country": "USA",
    "state": "US-TX",
    "city": "FREE",
    "zip": "78211",
    "phone": "2229808888",
    "phoneExtn": "091",
    "fax": "747",
    "faxExtn": "737",
    "fullCompanyName": "SUPPLIER MARCH 3 dba TEXT",
    "requestId": 5272423,
    "id": "3423589",
    "facilityCode": "0001",
    "systemCode": "1",
    "supplierType": "Operational",
    "status": "ACTIVE"
  },
  {
    "addressInternalid": 2631367,
    "isDelete": false,
    "internalSupplierid": 3423589,
    "acctGrpid": "RT",
    "address1": "11305 4 PTS DR",
    "address2": "BLDG 2,#100",
    "country": "USA",
    "state": "US-TX",
    "city": "AUSTIN",
    "zip": "78726",
    "phone": "5126648805",
    "phoneExtn": "123",
    "fax": "123",
    "faxExtn": "134",
    "fullCompanyName": "SUPPLIER MARCH 3 dba TEXT",
    "requestId": 5272423,
    "id": "3423589",
    "facilityCode": "0001",
    "systemCode": "1",
    "supplierType": "Operational",
    "status": "ACTIVE"
  },
  {
    "addressInternalid": 2631368,
    "isDelete": false,
    "internalSupplierid": 3423589,
    "acctGrpid": "RT",
    "address1": "REMIT 11305 4 PTS DR",
    "address2": "BLDG 3",
    "country": "USA",
    "state": "US-TX",
    "city": "AUSTIN",
    "zip": "78725",
    "phone": "5126600000",
    "phoneExtn": "678",
    "fax": "678",
    "faxExtn": "678",
    "fullCompanyName": "SUPPLIER MARCH 3 dba TEXT",
    "requestId": 5272423,
    "id": "3423589",
    "facilityCode": "0001",
    "systemCode": "1",
    "supplierType": "Operational",
    "status": "ACTIVE"
  }
]

1 Ответ

0 голосов
/ 15 марта 2020

Примечание: Ответ содержит два решения. Нижнее решение кажется лучшим решением, поскольку вы используете только одну привязку.


Решение # 1

Использование JSON Форматер агрегировать входящие документы в один JSON. Затем используйте Binary to Document Snap с кодировкой / декодированием, установленным на Нет . После этого вы можете просто проанализировать содержимое и поместить его под любым именем поля в маппере.

Пример конвейера:

Sample pipeline

Двоичные к документу:

binary to document

Окончательный картограф:

parsing json

Выход:

output

Примечания

  • Конфигурация не была изменена в JSON Форматер
  • Установка кодирования / декодирования на Нет в Двоичные к документу Важна привязка
  • Разобрать содержимое как - JSON.parse($content)

Решение # 2

На самом деле есть лучший способ сделать это - использовать " Группировать по N Snap с Целевое поле как remitLocations и Размер группы as 0.

Значение 0 указывает Snap привязывать все входные документы к одному документу.

S достаточный трубопровод

enter image description here

Группировка по N

enter image description here

Выход

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...