Проверка на ноль при объединении списка в Jolt - PullRequest
0 голосов
/ 04 мая 2020

Извлечение значений из первого элемента массива и второго элемента и соединение обоих. Входная строка:

Требуется проверка на пустое или пустое значение.

[
  {
    "creationDate": "2020-04-01T14:14:32.685+0000",
    "factValues": [
      {
        "Factname": "Medicine",
        "factvalue": "1234556",
        "sourcePguid": "1"
      },
      {
        "Factname": "Journal",
        "factvalue": "123455",
        "sourcePguid": null
      }
    ]
  },
  {
    "creationDate": "2020-04-01T14:14:32.685+0000",
    "factValues": [
      {
        "Factname": "chemical",
        "factvalue": "123455567",
        "sourcePguid": "2"
      },
      {
        "Factname": "Rubber",
        "factvalue": "123455435",
        "sourcePguid": "3"
      }
    ]
  }
]

Выходное значение исключено:

  {
       {
        "sourcePguid" : "1",
        "Medicine":"1234556"

      }, {
        "sourcePguid" : "2",
        "chemical":"123455567",
        "Rubber":"123455435"
      } 
    }

Пожалуйста, помогите мне достичь ожидаемого результата. json в спец. c. json. Spe c не трансформируется как ожидаемый результат. Я хочу научиться использовать атрибуты внутри анализатора строк. Это было бы здорово.

1 Ответ

0 голосов
/ 04 мая 2020

Это может помочь,

[
  {
    //Removes the fields having null from the JSON
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": "=recursivelySquashNulls"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "*": {
            //Shift only if sourcePguid is present
            "sourcePguid": {
              "@": "&4.sourcePguid",
              "@(1,factvalue)": "&4.@(2,Factname)"
            }
          }
        }
      }
    }
  },
  {
    // Select the first element from sourcePguid array shifted
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "sourcePguid": "=firstElement(@(1,sourcePguid))"
      }
    }
}
]
...