如何解决在 Swift 中从 API 结果以编程方式创建 JSON 数据
我正在使用以下 json 负载向 API 发出请求:
var json: [String: Any] = [
"locations": [
[
"latitude" : 10,"longitude": 10,],[
"latitude" : 20,"longitude": 20,]
]
]
现在,上面的 json 是硬编码的,所以我可以测试来自 API 的响应。相关 API 返回高程数据。
但是,我遇到的问题是我不想对 json 有效负载进行硬编码,我需要使用从提供纬度/经度坐标的单独 API 获得的其他数据填充 json。
如何使用从单独的 API 检索到的经纬度结果填充 json?
解决方法
创建对 JSON 建模的 Encodable
结构:
struct Locations: Encodable {
let locations: [Location]
}
struct Location: Encodable {
let latitude: Double
let longitude: Double
}
let locations = Locations(locations: [
Location(latitude: 10,longitude: 10),Location(latitude: 40,longitude: 40)
])
do {
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try encoder.encode(locations)
// use `data` as the payload to send to your server
print(String(bytes: data,encoding: .utf8)!)
} catch {
print(error)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。