震荡映射规范以转换枚举

huangapple 未分类评论43阅读模式
英文:

jolt mapping spec to transfer ENUM

问题

{
  "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"
            }
          ]
        }
      ]
    }
  }
}
英文:

I'm trying to transfer the JSON file below to another format, the phoneNumberType should be changed like this:

mobile -> MOBILE

home -> LANDLINE

work -> OFFICE

unspecified -> OTHER

really have no idea, anyone could help?

input:

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

expected:

{
  "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

[
  {
    "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"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
]
英文:

Check this spec

[
  {
    "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"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
]

huangapple
  • 本文由 发表于 2020年4月11日 05:07:22
  • 转载请务必保留本文链接:https://java.coder-hub.com/61148693.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定