MNM MNM - 1 year ago 44
JSON Question

Trying to parse a json array with swiftJson

I am downloading a file which does just fine. I am then trying to parse this json to get a value out from it. This is where the error occurs. The file downloads fine I think. Here is what I have so far

func parseYoutubeVideo(json : String)

if let data = json.dataUsingEncoding(NSUTF8StringEncoding)
let newJson = JSON(data: data)
//Get the youtube video from the Json data
print("Parsing Video")
self.myVideo = newJson["video"].stringValue
//load the video
print("Video parsed: " + self.myVideo)
self.myYoutubePlayer .loadWithVideoId(myVideo)

//Function to log into the server and retrive data
func downloadVideoUrl(myUrl : String)
print("Downloading video")
Alamofire.request(.GET, myUrl)
.authenticate(user: "admin", password: "admin")
.responseString { response in
print("Success: \(response.result.isSuccess)")
print("Response String: \(response.result.value)")

if(response.result.isSuccess == true)

//remove player from the view


This is what alamofire give me

Success: true
Response String: Optional("[ {\n \"video\" : \"zKevpV_Qo7A\"\n} ]")

Is there something I am missing on how to do this or am i doing this completely wrong.
This is how you parse out a json array right?

Thank you for any help with this

Answer Source

Use this code:

let data = response.result.value!.dataUsingEncoding(NSUTF8StringEncoding)
var json: NSArray?

do {
json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) as! NSArray
catch error as NSError {
let video = (json[0] as! NSDictionary)["video"] as String