从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 文件?

如何删除 jq 输出中的双引号以在 bash 中解析 json 文件?

如何在ios中将字典的双引号数组解析为json?

Pyspark 在数组中添加额外的双引号以节省时间

Java - '\' 未用于转义字符串中的双引号“