HandyJSON icon indicating copy to clipboard operation
HandyJSON copied to clipboard

`deserialize(from:designatedPath:)`失败

Open BackWorld opened this issue 4 years ago • 0 comments

解决方法:

extension String: _BuiltInBasicType {

    static func _transform(from object: Any) -> String? {
        switch object {
        case let str as String:
            return str
        case let num as NSNumber:
            // Boolean Type Inside
            if NSStringFromClass(type(of: num)) == "__NSCFBoolean" {
                if num.boolValue {
                    return "true"
                } else {
                    return "false"
                }
            }
            return formatter.string(from: num)
        case _ as NSNull:
            return nil
        case _ as NSObject:
            do {
                let data = try JSONSerialization.data(withJSONObject: object, options: .fragmentsAllowed)
                return String(data: data, encoding: .utf8)
            }catch {
                fatalError(error.localizedDescription)
            }
        default:
            fatalError("HandyJSON 数据解析失败,请检查数据格式!")
        }
    }

    func _plainValue() -> Any? {
        return self
    }
}

BackWorld avatar Apr 06 '21 03:04 BackWorld