Примените шаблон регулярного выражения в спецификации толчка, чтобы найти атрибут буквенно-цифровой или числовой - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть сценарий, в котором я хочу заполнить атрибут на основе значения данных.

Ввод:

{
   "PersonName":{
      "FirstName":"03-03-1984",
      "ID":"123567",
      "Name":[
         "Betty Lou",
         "Tre Chernockxdev"
      ],
      "LastName":"Tre Chernockxdev"
   }
}

Вывод:

{
   "Birth":{
      "YearOfBirth":"1984"
   },
   "Employee":{
      "LastName":"Tre Chernockxdev"
   },
   "Element":{
      "Category":"Fixed"
   }
}

Итак, на основеID значение Я хочу заполнить атрибут Gender.Если ID является числом, то заполните Category с помощью Fixed или, если ID является буквенно-цифровым, то заполните категорию значением Floating.

Спецификация толчка:

[
   {
      "operation":"shift",
      "spec":{
         "PersonName":{
            "FirstName":{
               "*-*-*":{
                  "$(0,3)":"Birth.YearOfBirth"
               }
            },
            "LastName":"Employee.LastName",
            "ID":"Fixed|Floating"
         }
      }
   }
]

Я также проверил функцию строки толчка , но не смог найти функцию, которую можно использовать для проверки категории данных.Их путь, где я могу найти, содержит ли ID значение number или alphanumeric?Или я могу применить regex pattern, чтобы проверить, содержат ли данные значение number или alphanumeric?

1 Ответ

0 голосов
/ 02 марта 2019

Вы хотите достичь чего-то вроде троичного оператора , что трудно получить, но возможно:

[
   {
      "operation":"shift",
      "spec":{
         "PersonName":{
            "*":"&"
         }
      }
   },
   {
      "operation":"modify-overwrite-beta",
      "spec":{
         "ID":[
            "=toInteger",
            "Floating"
         ]
      }
   },
   {
      "operation":"shift",
      "spec":{
         "ID":{
            "@":"ID",
            "Floating":null,
            "*":{
               "#Fixed":"ID"
            }
         },
         "*":"&"
      }
   },
   {
      "operation":"modify-overwrite-beta",
      "spec":{
         "ID":"=lastElement(@(1,ID))"
      }
   },
   {
      "operation":"shift",
      "spec":{
         "FirstName":{
            "*-*-*":{
               "$(0,3)":"Birth.YearOfBirth"
            }
         },
         "LastName":"Employee.LastName",
         "ID":"Element.Category"
      }
   }
]

См. Также:

...