Сравнить и объединить объекты одного массива - PullRequest
1 голос
/ 03 апреля 2019

Я хочу повторить каждый объект и отобразить system.myStringValue с value.myStringValue

Можете ли вы предоставить спецификации для того же самого?

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

Ввод:

[
  {
    "telecom": [
      {
        "system": {
          "myStringValue": "email"
        },
        "value": {
          "myStringValue": "mobqa@tester.com"
        }
      },
      {
        "system": {
          "myStringValue": "phone"
        },
        "value": {
          "myStringValue": "123"
        }
      }
    ]
  },
  {
    "telecom": [
      {
        "system": {
          "myStringValue": "email"
        },
        "value": {
          "myStringValue": "john.doe@tester.com"
        }
      }
    ]
  },
  {
    "telecom": [
      {
        "system": {
          "myStringValue": "email"
        },
        "value": {
          "myStringValue": "Gayle55@tester.com"
        }
      }
    ]
  }
]

Вывод:

{
  "users": [
    {
      "email":"mobqa@tester.com",
      "phone":"123"
    },
    {
      "email":"john.doe@tester.com"
    },
    {
      "email":"Gayle55@tester.com"
    }
  ]
}

1 Ответ

0 голосов
/ 23 мая 2019
[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "telecom": {
          "*": {
            "value": {
              "myStringValue": {
                // @ takes value of 'value.myStringValue' and puts it into 'users[&5]' occurence
                // @(3,system.myStringValue) go up four levels and then go to 'system.myStringValue'
                // value and grab it and put as key value to appropriate occurence of 'users' 
                "@": "users[&5].@(3,system.myStringValue)" 
              }
            }
          }
        }
      }
    }
  }
]
...