在 swift 中使用 SwiftyJson 将 True 变为 false

True becomes false using SwiftyJson in swift

我在使用 .boolValue 时得到了相反的布尔值 我有这个代码。

let _ = channel.bind(eventName: "like-unlike-cake", callback:  
  {(data:Any?)->Void in
let likedCake = JSON(data!)["like"]
print("liked cake: \(likedCake)")
print("Boolean: \(likedCake["liked_by_current_user"].boolValue)")

liked cake: {
    "liked_by_current_user" : true
}
}
Boolean: false

但是当我使用 .bool 时,它给了我 nil。有人帮我解决这个问题吗?

更新这将是 json 我想要获取的

{
 "like": {
 "id": "66642122-7737-4eac-94d2-09c9a35cbef8",
 "liked_by_current_user": true
 }
}

尝试以下操作:

let _ = channel.bind(eventName: "like-unlike-cake", callback {
   (data:Any?)->Void in

    if let jsonData = data {
         let json = JSON(jsonData)
         let isLikedByCurrentUser = json["like"]["liked_by_current_user"].boolValue
         print(isLikedByCurrentUser)
    } else {
         // your data is nil
         debugPrint("data error")
    }
}

您也可以尝试通过替换以下行将 data: Any 转换为 Data

if let jsonData = data as? Data {
     let json = JSON(data: jsonData)...

因为有时 SwiftyJSON 在从 Any.

创建 JSON 对象时遇到问题