在 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 对象时遇到问题
我在使用 .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
.