ios - 用于发布 json 格式数据的 API URL
问题描述
我如何将文本字段中的代码转换为 json 格式的数据。
下面是我拥有的当前代码,但是当单击按钮时,它似乎没有将文本字段中的数据传输到 json。他们在这段代码中有任何错误吗?
@IBAction func submitButton(_ sender: Any) {
// parse in paramaters
let parameters = ["Name": nameTextField, "Email": emailTextField, "DOB": dateTextField] as [String : Any]
guard let url = URL(string: "https://prod-69.westeurope.logic.azure.com/workflows/d2ec580e6805459893e498d43f292462/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=zn8yq-Xe3cOCDoRWTiLwDsUDXAwdGSNzxKL5OUHJPxo") else { return }
var request = URLRequest(url: url)
// let url session know that this is a post request
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
// convert paramaters to JSON
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else { return }
request.httpBody = httpBody
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
} catch {
print(error)
}
}
}.resume()
}
解决方案
是和类型or 。nameTextField
_ 确保您传递的是属性而不是本身。emailTextField
dateTextField
String
UITextField
UITextField.text
UITextField
见下文:
guard let name = nameTextField.text,
let email = emailTextField.text,
let dob = dateTextField.text else {
return
}
let parameters: [String: String] = ["name": name, "email": email, "dob": dob]
推荐阅读
- azure - Azure 容器经常连接到 23.97.221.176:11041。这个端口是干什么用的?
- python - 将 2 个列表与元组、列表和整数合并
- c# - 如何在列表视图中的文件资源管理器中区分 FileInfo 和 DirectoryInfo
- entity-framework - 当在 CRUD 中创建时显示其他列然后是外键
- python - 预期 LP_c_ubyte 实例而不是 str?
- css - 如何将不同大小的倾斜文本正确定位到特定区域?
- javascript - JavaScript 代码的概念性问题。请解释我得到的输出
- python - Python 中的 KeyConditions 和 KeyConditionExpression 失败
- google-chrome-extension - 使用 webRequest API 拦截脚本请求,编辑并发送回
- android - PreferenceFragmentCompat 影响其他片段的性能