Search code examples
iosswiftnsjsonserialization

Swift JSON extraction


I am developing a swift iOS app and getting the following JSON response from web service. I am trying to parse and get nextResponse from it. I am unable to extract it. Could someone guide me to solve this?

listofstudents:
        ({
        studentsList =     (
                    {
                data =             (
                    "32872.23",
                    "38814.87",
                    "38915.85"
                );
                label = “name, parents and guardians”;
            }
        );
        dateList =     (
            "Apr 26, 2017",
            "Jun 10, 2017",
            "Jul 26, 2017"
        );
        firstResponse = “This school has 1432 students and 387 teachers.”;
        nextResponse = “This school has around 1400 students.”;
    })

Swift code:

    do {
                let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
                print("json: \(json)")

                if let parseJSON = json {

                    let finalResponse = parseJSON["listofstudents"] as? AnyObject
                    print("listofstudents::   \(finalResponse)")

                    let nextResponse = parseJSON["nextResponse"] as? AnyObject
                    print("nextResponse::   \(nextResponse)")
         }
            } catch {
                print(error)
            }

Solution

  • nextResponse is part of the JSON structure (it's a nested node). So you should access it using:

    typealias JSON = [String: Any]
    if let finalResponse = parseJSON["listofstudents"] as? JSON {
        let nextResponse = finalResponse ["nextResponse"] as? JSON
        print("nextResponse::   \(nextResponse)")
    }