arrays - Parse data from socket.io response swift -


i have response socket io library response this

socket.on("response-names") {data, ack in              print(data)          }

can print this,

[{     "person": [{         "_id":"56512323212132",         "name":"john smith",         "id":"0000001",         "geolocation":{              "latitude":5.12312323443,              "longitude":101.12312464564354         }      }] }] 

how guys access name, id , geolocation(lat, long) in swift ?,

as far know data nsarray. accessing data[0] produce nil. can data.count return 1.

thank you

finally solved it, future reference others. looks need know type before parsing it. , check print. , debug code helping, nscfarray means data nsarray , try read that.

 let dataarray = data nsarray              let datastring = dataarray[0] as! string             let datanewnow = datastring.datausingencoding(nsutf8stringencoding, allowlossyconversion: false)!              {                 let json = try nsjsonserialization.jsonobjectwithdata(datanewnow, options: []) as! [string: anyobject]                  let str = json["person"] as! nsarray                 let str2 = str[0] as! nsdictionary                  let personname = str2["name"] as! string                 let personid = str2["id"] as! string                  let persongeolocation = str2["geolocation"] as! nsdictionary                 let personlatitude = persongeolocation["latitude"] as! nsnumber                 let personlongitude = persongeolocation["longitude"] as! nsnumber                  print("personname =", personname)                 print("personid =", personid)                 print("person latitude =", personlatitude)                 print("person longitude =", personlongitude)              } catch let error nserror {                 print("failed load: \(error.localizeddescription)")             } 

Comments