2016-07-28 26 views
0

我知道同一個問題有幾個可用的問題,但它們都不適用於我。 我的代碼從NSData的轉換成JSON是如何在不使用第三方庫的情況下快速解析JSON數據2

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" 
    }] 
} 

回答

1

首先總是使用原生的Swift收集類型,因爲基金會的同行缺乏重要的類型信息。

此代碼打印的鑰匙texttruncatedcreated_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) 
} 
+0

感謝做到這一點,但它並沒有在控制檯上 –

+0

代碼打印任何東西,所有的值應該使用你的樣本JSON – vadian

+0

好,讓我檢查示例json –

1

你可以用Array enumerate()

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 
    for statue in arrayStatuses.enumerate(){ 
    print("Statue Name : \(statue.name)") 
    } 

} 

catch _ as NSError { 

} 
+1

'enumerate'只有在需要'element'和'index'信息時纔有用 – vadian

+0

謝謝,(statue.name)是語法錯誤,所以我改爲打印(「雕像名稱:\(雕像)」),輸出打印只是數組的第一個對象 –

相關問題