ios - 如何使用 Alamofire 创建 JSON 并将其发送到服务器?

标签 ios json swift alamofire swifty-json

我想向服务器发送一个 JSON,其中包含用户的详细信息和用户选择的选项。目前我只是将它们保存在简单的数组中。

我想创建一个 JSON 并将其发送到服务器。通常我可以用 Alamofire 在参数上添加每个字段。但是这里我有一个问题是,字段的数量取决于用户数量(或乘客数量)。

我以前没有做过这种类型,我是 iOS 开发的新手。

{
    "contactPerson": {
        "email": {
            "email": "memine@gmail.com",
            "markedForSendingRezInfo": false,
            "preferred": false,
            "shareMarketInd": false
        },
        "personName": {
            "givenName": "Me",
            "shareMarketInd": false,
            "surname": "Mine"
        },
        "phoneNumber": {
            "countryCode": "93",
            "markedForSendingRezInfo": false,
            "preferred": false,
            "shareMarketInd": false,
            "subscriberNumber": "123456789"
        },
        "shareMarketInd": false,
        "useForInvoicing": false
    },
    "curr": "USD",
    "flight1": "{fligh1Info}",
        "flight2": "{flight2Info}",
    "passengers": [{
        "accompaniedByInfant": true,
        "birthDate": {
            "day": 6,
            "fractionalSecond": 0.000,
            "hour": 0,
            "minute": 0,
            "month": 9,
            "orig_day": 6,
            "orig_fracSeconds": 0.000,
            "orig_hour": 0,
            "orig_minute": 0,
            "orig_month": 9,
            "orig_second": 0,
            "orig_timezone": 330,
            "orig_year": 1991,
            "second": 0,
            "timezone": 330,
            "year": 1991
        },
        "hasStrecher": false,
        "parentSequence": 0,
        "passengerTypeCode": "ADLT",
        "personName": {
            "givenName": "some",
            "nameTitle": "Mr.",
            "shareMarketInd": false,
            "surname": "guy"
        },
        "requestedSeatCount": 1,
        "shareMarketInd": false,
        "unaccompaniedMinor": false
    }, {
        "accompaniedByInfant": false,
        "birthDate": {
            "day": 10,
            "fractionalSecond": 0.000,
            "hour": 0,
            "minute": 0,
            "month": 10,
            "orig_day": 10,
            "orig_fracSeconds": 0.000,
            "orig_hour": 0,
            "orig_minute": 0,
            "orig_month": 10,
            "orig_second": 0,
            "orig_timezone": 330,
            "orig_year": 2010,
            "second": 0,
            "timezone": 330,
            "year": 2010
        },
        "hasStrecher": false,
        "parentSequence": 0,
        "passengerTypeCode": "CHLD",
        "personName": {
            "givenName": "some",
            "shareMarketInd": false,
            "surname": "child"
        },
        "requestedSeatCount": 1,
        "shareMarketInd": false,
        "unaccompaniedMinor": false
    }, {
        "accompaniedByInfant": false,
        "birthDate": {
            "day": 1,
            "fractionalSecond": 0.000,
            "hour": 0,
            "minute": 0,
            "month": 1,
            "orig_day": 1,
            "orig_fracSeconds": 0.000,
            "orig_hour": 0,
            "orig_minute": 0,
            "orig_month": 1,
            "orig_second": 0,
            "orig_timezone": 330,
            "orig_year": 2018,
            "second": 0,
            "timezone": 330,
            "year": 2018
        },
        "hasStrecher": false,
        "parentSequence": 0,
        "passengerTypeCode": "INFT",
        "personName": {
            "givenName": "some",
            "shareMarketInd": false,
            "surname": "kid"
        },
        "requestedSeatCount": 1,
        "shareMarketInd": false,
        "unaccompaniedMinor": false
    }],
    "pwd": "password",
    "requestPurpose": "MODIFY_PERMANENTLY_AND_CALC",
    "unm": "username"
}

这是我的 JSON。这里 flight1 flight2 .... 的数量取决于用户选择的航类数量。

passengers 中对象的数量取决于用户选择的乘客数量。

我该怎么做这部分?

最佳答案

尝试创建一个 [String: Any] 类型的字典,如下例所示。

let param : [String: Any] = ["contactPerson": [ "email":[ "email": "text@mail.com"], "markedForSendingRezInfo": false], "personName": [], "curr": "USD", "flight1" : [], "flight2" : [] ]

您可以根据请求参数要求在param中添加key值。然后将此参数传递给 alamofire 请求参数。

关于ios - 如何使用 Alamofire 创建 JSON 并将其发送到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56160926/

相关文章:

ios - 解析分析自定义事件未注册

ios - 修改默认启动画面中的应用程序名称

javascript - 连接 Angular 和 Node.js : the function of . json()

json - 如何在 github 上托管 Jupyter 笔记本?

json - Powershell ConvertTo-JSON缺少嵌套级别

swift - WKWebView如何添加导航栏?

ios - Swift iOS - 如何动态地将属性添加到现有类然后访问它们

ios - 如何对项目内不同组的多个图像进行动画处理?

ios - 拉联系电话号码问题

ios - 如何让程序在后台运行?