Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用Alamofire创建JSON并将其发送到服务器?_Ios_Json_Swift_Alamofire_Swifty Json - Fatal编程技术网

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

Ios 如何使用Alamofire创建JSON并将其发送到服务器?,ios,json,swift,alamofire,swifty-json,Ios,Json,Swift,Alamofire,Swifty Json,我想向服务器发送一个JSON,其中包含用户的详细信息和用户选择的选项。目前我只是将它们保存在简单的数组中 我想创建一个JSON并将其发送到服务器。通常我可以用Alamofire在参数上添加这些字段。但这里我有一个问题,字段的数量取决于用户的数量(或乘客数量) 我以前从未做过这种类型的开发,我是一个iOS开发新手 { "contactPerson": { "email": { "email": "memine@gmail.com",

我想向服务器发送一个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
的数量。。。。取决于用户选择的航班数

乘客内物体的数量取决于用户选择的乘客数量


这部分怎么做?

您需要在字典中添加数据

迅捷5


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

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

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

您需要创建包含上述结构的
NSDictionary
,并将其转换为json。请勾选@PratikPrajapati Ok,但如何将航班数量和乘客数量添加到NSDictionary中的确切位置?(这两种变化都取决于用户选择)@PratikPrajapati您不需要
NSDictionary
,您需要Swift Dictionary(
[String:Any]
)创建包含值的数组,如
[“flight1”:“{fligh1Info}”,“flight2”:“{fligh2Info}”
,并在用户选择时添加/删除该值,在将这些数据添加到主
词典之后
@PratikPrajapati噢,谢谢。有一个问题,如果我像那样将它移动到数组中,我如何知道这部分被添加到json(或字典)中的正确位置?
let param : [String: Any] = ["contactPerson": [ "email":[ "email": "text@mail.com"], "markedForSendingRezInfo": false], "personName": [], "curr": "USD", "flight1" : [], "flight2" : [] ]