json - Swift 解析带有数字的 JSON url
问题描述
我需要从 api 获取信息,但在查询中它看起来像这样:http://website.name&q=chocolate
我的问题是,可以说我正在寻找一定的尺寸,我需要为空格添加 %20 。例如,寻找 250g 的巧克力: http://website.name&q=chocolate%20250g。Swift 无法识别 250g,它给了我一个错误:无效的 url 字符串。如何制作一个在查询中包含数字的 json url?
编辑:
let jsonUrlString = self.getJsonUrl(pCode: postalCode, key: searchKey)
guard let url = URL(string: jsonUrlString) else {return}
我将这个 URL 用于 URLSession。
我使用此代码来格式化查询中的间距:
private func formatSearchKey(key: String)->String{
return key.replacingOccurrences(of: " ", with: "%20")
}
例如,当我从查询中删除数字时,cookie%20and%20milk 很好。当我执行 cookie 250g: cookies%20250g 之类的操作时,它给了我一个错误
编辑 2.0
private func getJsonUrl(pCode: String, key: String) -> String{
//Create a function that creates a url based on postal code, and key values that it gets back from my database
return "\(JSON_URL_BASE)postal_code=\(pCode)&q=\(key)"
}
private func formatPostalCode(pCode: String) -> String{
return pCode.replacingOccurrences(of: " ", with: "")
}
private func formatSearchKey(key: String)->String{
return key.replacingOccurrences(of: " ", with: "%20")
}
关键价值是我遇到的麻烦。有时他们会返回一个像“cookies and milk”这样的字符串。但是当它返回“cookies 250g”时它不会。
解决方案
推荐阅读
- c# - 将视图文本输入中的参数传递给控制器参数
- rust - Rust 中的方法(继承)和覆盖
- flutter - Flutter 不可变实体和表单
- terraform - 使用嵌套 for_each 时 terraform 抛出错误
- python - 无法美化 Python Beautiful Soup 输出。我有哪些选择?
- firebase - 如何使用其 ID 从 Firebase 中的文档中获取数据?
- c# - 如何避免在 C# 中自动下载传递依赖项
- java - 有没有人在使用 Java-Prolog 连接器时得到“java.net.SocketException: Connection reset”
- ruby-on-rails - 运行 Travis 构建时找不到 Railties 和 RSPEC-core gem
- flutter - dart Mockito 可以模拟抽象类吗?