ios - 如何在 swift 中为 Post 请求创建 JSON Body
问题描述
我必须使用以下 Json Body 提出请求。我很难在制作 json body 时动态添加“房间”节点。
{
"from": "2019-05-06",
"to": "2019-05-07",
"destinationId": "DXB",
"destination": "Dubai - United Arab Emirates",
"roomsCount": 2,
"room1":{"age":[],"adult":2,"children":0},
"room2":{"age":[],"adult":2,"children":0}
}
解决方案
尝试使用 Swift 4 的Encodable创建 JSON。
例子:
struct Body: Encodable {
var from: String
var to: String
var rooms: [Room]
init(from: String, to: String, rooms: [Room]) {
self.from = from
self.to = to
self.rooms = rooms
}
}
struct Room: Encodable {
var age: Int
var adults: Int
var children: Int
init(age: Int, adults: Int, children: Int) {
self.age = age
self.adults = adults
self.children = children
}
}
let body = Body(from: "Amsterdam", to: "Dubai", rooms: [Room(age: 22, adults: 1, children: 0), Room(age: 54, adults: 0, children: 1)])
let encoded = try JSONEncoder().encode(body)
//String(data: encoded, encoding: .utf8)
//{"from": "Amsterdam", "to": "Dubai", "rooms": [{"age":22,"children":0,"adults":1},{"age":54,"children":1,"adults":0}]}
推荐阅读
- python - 如何在没有硬核的python的turtle模块中制作多个按钮
- spring - ElasticsearchItemReader 不断读取相同的记录
- javascript - 如何通过两种方式数据绑定以在 Bootstrap 中动态设置滑动切换?
- javascript - React Native Web - 找不到模块:无法解析'../../App'
- docker - 来自主机的更改后,Docker 容器中的文件没有得到更新
- laravel - 运行测试套件时重置自动增量(id)?
- c# - MarkupExtension 派生类名称:使用部分名称稍后引用它是有效的。重点是什么?
- javascript - 播放和暂停按钮在轮播中不起作用?
- php - 如何使用 acf 将自定义字段添加到 woocommerce 商店页面
- opencv - 加载 opencv.js 和它在 3.4.6 和更新版本中准备好之间是否有延迟?