首页 > 解决方案 > 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”时它不会。

标签: jsonswiftparsing

解决方案


推荐阅读