首页 > 解决方案 > JSONSerialization.jsonObject 不接受我的参数

问题描述

我正在尝试承诺一个 Json 对象。

但是, JSONSerialization.jsonObject 不接受我的任何参数..

class func deserialize<T>(data: Data) -> Promise<T> {
    let deserialized = try! JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments)
        String(data: data, encoding: String.Encoding.utf8)

    // Deserialize or try as String
    guard let object = deserialized else {
        return Promise<T>(error: APIError.InvalidJSON(data) as Error)
    }

    // Cast as T
    guard let objectT = object as? T else {
        return Promise<T>(error: APIError.JSONTypeMismatch(object, T.self))
    }

    return Promise(objectT)
}

我收到两个错误:

let desserialized = try! JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments)

“不能使用类型为‘(带有:数据,选项:JSONSerialization.ReadingOptions)’的参数列表调用‘jsonObject’”

String(data: data, encoding: String.Encoding.utf8)

“无法将‘数据’类型的值转换为预期的参数类型‘数据’”

标签: swiftswift4nsjsonserializationpromisekit

解决方案


归功于“RMaddy”

似乎您有另一个与标准 Swift Data 结构冲突的 Data 类/结构。

有一个预先存在的类,我将其命名为 Data。


推荐阅读