我知道同一个问题有几个可用的问题,但没有一个对我有用。 我从 NSData 转换为 JSON 的代码是
var locateData: NSData = NSData(contentsOfURL: location)!
do {
responseObject = try NSJSONSerialization.JSONObjectWithData(locateData, options: NSJSONReadingOptions(rawValue: 0)) as! NSDictionary
let arrayStatuses: NSArray = responseObject["statuses"] as! NSArray
print("Data items count: \(arrayStatuses.count)")
}
catch _ as NSError {
}
打印计数总是显示 1,我需要创建数组内可用字典的模型类
这是我的示例 JSON
{
"statuses": [
{
"created_at": "Wed Jul 27 07:31:26 +0000 2016",
"name" :"shesh"
},
{
"created_at": "Wed Jul 27 07:31:26 +0000 2016",
"name" :"shesh"
},
{
"created_at": "Wed Jul 27 07:31:26 +0000 2016",
"name" :"shesh"
},
{
"created_at": "Wed Jul 27 07:31:26 +0000 2016",
"name" :"shesh"
}]
}
最佳答案
首先,始终使用原生 Swift 集合类型,因为 Foundation 对应物缺少重要的类型信息。
此代码打印键 text
、truncated
和 created_at
的所有值
let locateData = NSData(contentsOfURL: location)!
do {
if let responseObject = try NSJSONSerialization.JSONObjectWithData(locateData, options: []) as? [String:AnyObject],
arrayStatuses = responseObject["statuses"] as? [[String:AnyObject]] {
print("Data items count: \(arrayStatuses.count)")
for status in arrayStatuses {
let created = status["created_at"] as! String
let truncated = status["truncated"] as! Bool
let text = status["text"] as! String
print("text: \(text), created: \(created), truncated: \(truncated)")
}
}
} catch let error as NSError {
print(error)
}
关于swift - 如何在没有第三方库的情况下在 swift 2 中解析 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38628899/