JSON .count 数组在 Swift 4 中总是返回 0
Posted
技术标签:
【中文标题】JSON .count 数组在 Swift 4 中总是返回 0【英文标题】:Array of JSON .count always returns 0 in Swift 4 【发布时间】:2018-06-22 09:34:04 【问题描述】:我在 swift 中遇到了一些 JSON 问题。当我从 userDefault 存储(JSON 数组为字符串格式)获取 JSON 数据时,然后将其解析为 JSON 对象并计算数组中的对象数,但结果始终返回 O(零)。
我的快速代码:
let carts = userStorage.object(forKey: userDefaultKeys.carts)
print("logging carts....")
print(JSON(carts as! String).count)
print(JSON(carts as! String))
它登录到结果窗口
logging carts....
0
[
"Lat" : 32,
"Time" : null,
"Items" : [
"StorePhone" : "018753678474",
"Ingredient" : "",
"FK_Category" : 2,
"Enabled" : 1,
"UpdatedAt" : null,
"IsActive" : 1,
"quantity" : 1,
],
"DeliveryFee" : null,
"Photos" : "https:\/\/networkposting.com\/wpcontent\/uploads\/2018\/02\/maxresdefaul-137.jpg"
]
【问题讨论】:
可变的购物车类型 给我完整的答复 我把它定义为任意类型的变量 指定数组类型 让 carts:NSArray = userStorage.object(forKey: userDefaultKeys.carts) 为! NSArray 【参考方案1】:根据Usage Documentation on the GitHub page:
初始化
let json = JSON(data: dataFromNetworking)
或
let json = JSON(jsonObject)
或
if let dataFromString = jsonString.data(using: .utf8, allowLossyConversion: false)
let json = JSON(data: dataFromString)
所以你不能像你一样直接通过 String 初始化一个 SwiftyJSON 对象。
如果你有一个 JSON 字符串...首先使用上面的底部示例将其转换为数据。
【讨论】:
非常感谢。我先将字符串转换为数据,然后将数据解析为对象。效果很好以上是关于JSON .count 数组在 Swift 4 中总是返回 0的主要内容,如果未能解决你的问题,请参考以下文章
在 swift 4 和 Xcode 9 中解码 ExpandableTableView 的嵌套 json 数组