我该如何修复“字典文字包含重复键”?

How do i fix " Dictionary literal contains duplicate keys "?

我正在尝试通过 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
        ]

这是我的代码 "email" : ["email".. 来了两次。我如何解决它?我在 Whosebug 中回答了几个问题,但他们都在谈论从服务器获得这种响应。但是我在这里尝试将它发送到服务器。

那么我该如何解决这个问题?

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

谢谢。

您必须按如下方式管理您的对象:

    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
    ]