Alamofire JSON 编码布尔问题?

Posted

技术标签:

【中文标题】Alamofire JSON 编码布尔问题?【英文标题】:Alamofire JSON Encoding boolean issues? 【发布时间】:2018-07-05 10:01:18 【问题描述】:

是否有任何自定义编码将 Bool 编码为 true 而不是 0 或 1 ?

URLEncoding 可以选择将 Bool 更改为文字或数字。但是 JSONEncoding.default 没有那个选项。

有没有人针对这个问题创建了 JSONEncoding ?

【问题讨论】:

将其转换为 cfboolean 【参考方案1】:

您需要在URLEncoding 初始化程序中设置boolEncoding: .literal

【讨论】:

【参考方案2】:

您可以使用以下方法直接转换布尔值,默认返回false。它适用于 Bool 作为文字或数字。

func boolean(_ anything: Any?) -> Bool 
    if let any = anything 
        if let num = any as? NSNumber 
            return num.boolValue
         else if let str = any as? NSString 
            return str.boolValue
        
    
    return false

【讨论】:

以上是关于Alamofire JSON 编码布尔问题?的主要内容,如果未能解决你的问题,请参考以下文章

URL编码参数中的布尔值在Swift3中使用Alamofire编码为0和1

Alamofire JSON 参数编码因 elasticsearch 失败

从 alamofire swift 的 tableview 单元格中的 url 加载图像

如何使用 Alamofire Swift 4 在 JSON 编码中传递数据

用 alamofire 处理 Json 响应

Json 解析 Swift 3 Alamofire