отображение толчков спец c для передачи ENUM - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь перевести файл JSON, указанный ниже, в другой формат, phoneNumberType следует изменить следующим образом:

mobile -> MOBILE

home -> LANDLINE

работа -> ОФИС

не указано -> ДРУГОЕ

неужели понятия не имею, кто-нибудь может помочь?

вход:

{
  "eventOrdinal": 1555952128591,
  "personalInfo": {
    "phoneNumbers": [
      {
        "phoneNumberType": "mobile",
        "phoneNumber": "11111111111"
      },
      {
        "phoneNumberType": "home",
        "phoneNumber": "2222222222"
      },
      {
        "phoneNumberType": "work",
        "phoneNumber": "33333333333"
      },
      {
        "phoneNumberType": "unspecified",
        "phoneNumber": "4444444444444"
      }
    ]
  }
}

ожидается :

{
  "user": {
    "identity": {
      "phoneNumbers": [
        {
          "operation": "CREATE_OR_REPLACE",
          "version": 1555952128591,
          "values": [
            {
              "number": "11111111111",
              "telephoneType": "MOBILE"
            },
            {
              "number": "2222222222",
              "telephoneType": "LANDLINE"
            },
            {
              "number": "33333333333",
              "telephoneType": "OFFICE"
            },
            {
              "number": "4444444444444",
              "telephoneType": "OTHER"
            }
          ]
        }
      ]
    }
  }
}

1 Ответ

0 голосов
/ 14 апреля 2020

Проверьте это значение c

[
  {
    "operation": "shift",
    "spec": {
      "personalInfo": {
        "phoneNumbers": {
          "*": {
            "@": "user.identity.phoneNumbers[0].values.[&1]"
          }
        }
      },
      "eventOrdinal": "user.identity.phoneNumbers[0].version",
      "#CREATE_OR_REPLACE": "user.identity.phoneNumbers[0].operation"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "user": {
        "identity": {
          "phoneNumbers": {
            "*": {
              "operation": "user.identity.phoneNumbers[0].operation",
              "version": "user.identity.phoneNumbers[0].version",
              "values": {
                "*": {
                  "phoneNumber": "user.identity.phoneNumbers[0].values[&1].number",
                  "phoneNumberType": {
                    "mobile": {
                      "#MOBILE": "user.identity.phoneNumbers[0].values[&3].telephoneType"
                    },
                    "home": {
                      "#LANDLINE": "user.identity.phoneNumbers[0].values[&3].telephoneType"
                    },
                    "work": {
                      "#OFFICE": "user.identity.phoneNumbers[0].values[&3].telephoneType"
                    },
                    "unspecified": {
                      "#OTHER": "user.identity.phoneNumbers[0].values[&3].telephoneType"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
]
...