Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swift 2 - NSJSONSerialization.JSONObjectWithData Handling Error [duplicate]

I have a JSONParser, but unfortunately I couldn't adapt NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &error) bit to Swift 2.0, so I am receiving error:

Extra argument 'error' in call

I found out that I can achieve this with do-try-catch, but I couldn't figure out how to adapt it in my case. Whatever I tried is just throwing another error.

class JSONParser {

  let json: AnyObject?
  var error: NSError?

  init(data: NSData){  // ~this chunk~
      self.json = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &error)
  }

  func array()->NSArray?{
      if let jsonResponse: AnyObject = self.json{
          return jsonResponse as? NSArray
      }
      return nil
  }

  func dictionary()->NSDictionary?{
      if let jsonResponse: AnyObject = self.json{
          return jsonResponse as? NSDictionary
      }
      return nil
  }
}
like image 688
senty Avatar asked Dec 17 '25 20:12

senty


1 Answers

swift3

NSJSONSerialization and its methods are modified, according to the Swift Documents.

do {
  
    let JsonDict = try JSONSerialization.jsonObject(with: data, options: [])
    // you can now use t with the right type        
    if let dictFromJSON = JsonDict as? [String:String]
 {
        // use dictFromJSON
    }
} catch let error as NSError {
    print(error)
}

Swift2

   init(data: NSData){  // ~this chunk~
     do {
        self.json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as! [String:AnyObject]
   
     } catch {
        print("error: \(error)")
        self.json = nil
     }
  }

for more information tutorial1, tutorial2

like image 111
Anbu.Karthik Avatar answered Dec 20 '25 12:12

Anbu.Karthik



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!