2016-04-22 73 views

回答

2
let url = "https://cdn.contentful.com/spaces/maz0qqmvcx21/entries?access_token=ae8163cb8390af28cd3d7e28aba405bac8284f9fe4375a605782170aef2b0b48"; 
var jsonData:NSData? 

do{ 
    jsonData = try NSData(contentsOfURL: NSURL(string: url)!, options: NSDataReadingOptions.DataReadingUncached) 
    let jsonObject:AnyObject? = try NSJSONSerialization.JSONObjectWithData(jsonData!, options: NSJSONReadingOptions.AllowFragments) 
    if let itemArray = jsonObject?.objectForKey("items") as? NSArray{ 
     for item in itemArray{ 
      if let sysItem = item.objectForKey("sys"){ 
       //this is createdAt 
       if let createdAt = sysItem.objectForKey("createdAt") as? String{ 
        print("createdAt:\(createdAt)") 
       } 

       if let contentTypeItem = sysItem.objectForKey("contentType")!.objectForKey("sys"){ 
        //this is id 
        if let id = contentTypeItem.objectForKey("id") as? String{ 
         print("id:\(id)") 
        } 
       } 
      } 
     } 
    } 
}catch let err as NSError{ 
    print("err:\(err)") 
} 

此代码没有使用任何库,但可以使用SwiftyJSON,这将很容易解析json。

希望得到这个帮助。

+0

谢谢!解决了我的问题:)。 – kevinabraham

1

这可以用简单的方法完成。我假设你已经解析了你的json到字典

你有一个关键字,它是一个字典数组,并且在这个字典中你创建了at和id(它深入到层次结构中,但我会告诉你如何得到它)钥匙。您只需执行此操作即可访问它。

for dict in jsonDict["items"] as! Array<NSDictionary> { 
    let sysDict = dict["sys"] as! NSDictionary 
    print(sysDict["createdAt"]) //prints all createdAt in the array 
    let contentDict = sysDict["contentType"] 
    print((contentDict["sys"] as! NSDictionary)["id"]) // prints all ids 
} 

希望这会有所帮助。