Как я могу исправить "Словарь литерал содержит дубликаты ключей"? - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь отправить свой параметр через alamofire, и в моих параметрах есть дубликат ключа.Мне нужно передать этот ключ, но всякий раз, когда я его пробую, выскакивает ошибка.

let param : [String: Any] = ["contactPerson": [ "email":[ "email": contactemail], "markedForSendingRezInfo": false,"preferred": false,"shareMarketInd": false], "personName": ["givenName": contactname,"shareMarketInd": false,"surname": contactlastname],"phoneNumber":["countryCode": contactcountrycode,"markedForSendingRezInfo": false,"preferred": false,"shareMarketInd": false,"subscriberNumber": contactphone],"shareMarketInd": false,"useForInvoicing": false,"curr":"USD","flight1" : selectedflightjson,"flight1" : selectedflightjsonRM,"passengers":[passengerparameterarray],"pwd": password,"requestPurpose": "MODIFY_PERMANENTLY_AND_CALC","unm": username
        ]

Это мой код и "электронная почта": ["электронная почта" .. приходит дважды.Как мне это исправить?Я перешел на несколько вопросов в StackOverflow, но все они говорят о получении такого ответа от сервера.Но здесь я пытаюсь отправить его на сервер.

Так как мне это исправить?

{
    "contactPerson": {
        "email": {
            "email": "a@gmail.com",
            "markedForSendingRezInfo": false,
            "preferred": false,
            "shareMarketInd": false
        },
        "personName": {
            "givenName": "v",
            "shareMarketInd": false,
            "surname": "j"
        },
        "phoneNumber": {
            "countryCode": "1",
            "markedForSendingRezInfo": false,
            "preferred": false,
            "shareMarketInd": false,
            "subscriberNumber": "123456789"
        },
        "shareMarketInd": false,
        "useForInvoicing": false
    },

Это часть моего json.Также [passengerparameterarray] имеет ту же проблему, будет ли она работать, если я преобразую [passengerparameterarray] в json и передам его этим параметрам?Я уже передаю 'selectedflightjson' как Json, так как это мыльный API.

Спасибо.

1 Ответ

0 голосов
/ 30 мая 2019

Вы должны управлять своим объектом следующим образом:

    let param : [String: Any] =
        [
            "contactPerson": [
                "email": [
                    "email": contactemail,
                    "markedForSendingRezInfo": false,
                    "preferred": false,
                    "shareMarketInd": false
                ],
            "personName": [
                "givenName": contactname,
                "shareMarketInd": false,
                "surname": contactlastname
            ],
            "phoneNumber": [
                "countryCode": contactcountrycode,
                "markedForSendingRezInfo": false,
                "preferred": false,
                "shareMarketInd": false,
                "subscriberNumber": contactphone
            ],
            "passengers": [
                passengerparameterarray
            ],
            "shareMarketInd": false,
            "useForInvoicing": false,
            "curr": "USD",
            "flight1": selectedflightjson,
            "flight2": selectedflightjsonRM,
            "pwd": password,
            "requestPurpose": "MODIFY_PERMANENTLY_AND_CALC",
            "unm": username
    ]
...