У меня есть массив Json с каждым из его объектов, имеющих динамические атрибуты. Я должен объединить все объекты в один объект Json в нифи - PullRequest
0 голосов
/ 14 мая 2019

У меня есть массив Json, каждый объект имеет динамические атрибуты.Я должен объединить все объекты в один объект Json в nifi с объединенным значением общего атрибута и другими атрибутами как есть.

Я уже попробовал следующие спецификации, и он дает общие атрибуты в виде списка массивов.Но я хочу, чтобы значение этого общего атрибута было объединено, и я не знаю, как это сделать.Любое предложение будет очень полезно.Заранее спасибо.

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "&"
      }
    }
    }
]

Ввод похож (Примечание: атрибуты являются динамическими, поэтому не всегда будут иметь эти атрибуты)

[
  {
    "firstName": "Sam1",
    "lastName": "Achom1",
    "place": "Silchar1"
  },
  {
    "firstName": "Saya2",
    "lastName": "Singh2",
    "place": "Macherial2",
    "Second1stAttribute": "SomeValue"
  },
  {
    "firstName": "Sam3",
    "lastName": "Achom3",
    "place": "Silchar3",
    "Third2ndAttribute": "SomeValue2"
  }
]

Вывод, который я получаю до упомянутой спецификации

{
  "firstName" : [ "Sam1", "Saya2", "Sam3" ],
  "lastName" : [ "Achom1", "Singh2", "Achom3" ],
  "place" : [ "Silchar1", "Macherial2", "Silchar3" ],
  "Second1stAttribute" : "SomeValue",
  "Third2ndAttribute" : "SomeValue2"
}

И ожидая вывода как

{ "firstName" : "Sam1 Saya2 Sam3",
  "lastName" : "Achom1 Singh2 Achom3",
  "place" : "Silchar1 Mancherial2 Silchar3",
  "Second1stAttribute" : "SomeValue",
  "Third2ndAttribute" : "SomeValue2"
}

1 Ответ

0 голосов
/ 04 июля 2019

Вы можете «объединить» элементы из ваших массивов.Эта спецификация сделает свое дело:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "&"
      }
    }
    },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": "=join(' ',@(1,&))"
    }
    }
]
...