从json响应swift中删除数组中的双引号
Posted
技术标签:
【中文标题】从json响应swift中删除数组中的双引号【英文标题】:remove double quotes in array from json response swift 【发布时间】:2019-08-14 08:42:40 【问题描述】:我正在使用 Alamofire 进行 url 调用以获取数据,如下所示。
在第一步中,我将 JSON 数组转换为这种格式
[“a”, “b”, “b”, “c”]
并且它的工作正常。 _price
变量的问题是这样的
["1233", "1333","3422","2422"]
但我需要从 _price
数组中删除双引号
最终_price
显示为这样
[1233、1333、3422、2422]
class ChartVC: UIViewController
var _year : [String] = []
var _month : [String] = []
var _price : [String] = []
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
getData()
func getData()
AF.request(DOLLAR_CHART).response (response) in
guard let data = response.data else return
let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
if let items = responseJSON as? [[String: Any]]
var years: [String] = []
var months: [String] = []
var prices: [String] = []
for item in items
if let year = item["year"] as? String
years.append(year)
if let month = item["month"] as? String
months.append(month)
if let price = item["price"] as? String
prices.append(price)
self._year = years
self._month = months
self._price = prices
print(self._price)
// show like this when print that["1233", "1333","3422","2422"]
// how to show like this [1233, 1333, 3422, 2422]
else
print("json is not array dictionary")
【问题讨论】:
将价格数组声明为 Int 类型并在附加时进行转换。为什么不使用带有客户结构的数组而不是 3 个不同的数组,并且一年不应该包含很多个月(和价格)?print(self._price.compactMap Int($0) )
如果您遇到 JSON 问题,请发布 JSON
【参考方案1】:
如果您想从价格中获取整数值。
if let price = Int(item["price"] as? String ?? "")
prices.append(price)
您应该将 _price 和 prices 数组定义为 Int 数组。
var _price : [Int] = []
var prices: [Int] = []
【讨论】:
对不起,我的错。现在应该没问题了 我使用了你的答案,但是 if let 这样的行出现错误:协议类型'Any'不能符合'StringProtocol',因为只有具体类型才能符合协议 所以您可以尝试将其转换为字符串。试试这样的: Int(item["price"] as?String ?? "") 我在操场上检查了它并编辑了我的答案以上是关于从json响应swift中删除数组中的双引号的主要内容,如果未能解决你的问题,请参考以下文章
如何在php中删除从json “x”:“y”到x:y的双引号[关闭]
如何删除 jq 输出中的双引号以在 bash 中解析 json 文件?