У меня есть приложение, в котором я пытаюсь извлечь данные из API, который я создал (API основан на NODE.js, MongoDB, Express.js)Разбор массива объектов и заполнение табличных ячеек таблицы Swift
В настоящее время я пытаюсь вытащить и массировать объекты, а затем создать табличное представление на основе этого массива объектов. Например, если массив объектов содержит 4 объекта, то в представлении таблицы будет 4 ячейки. И, щелкнув ячейку, я перейду к другому виду, где я смогу просмотреть подробный вид этого объекта.
Как я могу проанализировать возвращенные данные JSON из API и заполнить ячейки представления таблицы?
Мой Выпуск:
В настоящее время я не могу разобрать возвращаемый массив объектов. Ниже приводится изображение из того, что возвращаемый JSON содержит:
Ошибка:
Я получаю следующее сообщение об ошибке:
Error could not parse JSON: Optional([
{
"_id": "55d1db984f80687875e43f89",
"password": "$2a$08$OQB/r9iIZdSFlN9L5vaiE.qILB8gP/YtlsA3S41usVnM/eXHBW9j6",
"email": "[email protected]",
"__v": 0,
"sector": "Manufacturing",
"jobTitle": "Something 1",
"employeeName": "Something 1"
},
// it displays all the data being returned in JSON response
])
Ниже моя SWIFT код :
import UIKit
class SectorViewController: UIViewController {
@IBAction func getManufacturingBios(sender: AnyObject) {
var request = NSMutableURLRequest(URL: NSURL(string: "https://myURL/user/all")!)
var session = NSURLSession.sharedSession()
request.HTTPMethod = "GET"
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
var err: NSError?
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
println("Response: \(response)")
var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Body: \(strData)")
var err: NSError?
var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableLeaves, error: &err) as? NSDictionary
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
// Did the JSONObjectWithData constructor return an error? If so, log the error to the console
if(err != nil) {
println(err!.localizedDescription)
let jsonStr = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Error could not parse JSON: '\(jsonStr)'")
}
else {
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
// The JSONObjectWithData constructor didn't return an error. But, we should still
// check and make sure that json has a value using optional binding.
if let parseJSON = json {
// Okay, the parsedJSON is here, let's get the value for 'success' out of it
var sector = parseJSON["sector"] as! String
println("Succes: \(sector)")
}
else {
// Woa, okay the json object was nil, something went worng. Maybe the server isn't running?
let jsonStr = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Error could not parse JSON: \(jsonStr)")
}
}
})
task.resume()
}
}
Это _looks_, как будто вы возвращаете JSONP (т.е. JSON дополняется функцией «Необязательный»). Правильно ли это звучит? – Andy
@ Andy Нет У меня нет функции, называемой Необязательно в моем коде. Не знаете, как это исправить. – Skywalker