Ios 如何使用Alamofire创建JSON并将其发送到服务器?
我想向服务器发送一个JSON,其中包含用户的详细信息和用户选择的选项。目前我只是将它们保存在简单的数组中 我想创建一个JSON并将其发送到服务器。通常我可以用Alamofire在参数上添加这些字段。但这里我有一个问题,字段的数量取决于用户的数量(或乘客数量) 我以前从未做过这种类型的开发,我是一个iOS开发新手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",
{
"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" : [] ]