Как данные передают массив в словарь в Alamofire - PullRequest
0 голосов
/ 03 апреля 2019

мой массив ответов json для словаря, но я пытаюсь получить мои данные в show tableview. Но мой ответ в одном ключевом «члене», и я хочу получить данные для ключа члена, но получаю некоторую ошибку.

Я пытаюсь передать массив в качестве параметра в запрос Alamofier. Но у меня нет данных от моего JSON, я получаю некоторую ошибку, мой код, я не могу, что я делаю ....

Мой URL:

https://myfoodtalk.com:3001/api/restaurants?filter={"counts":"restaurant-comments","order":"created DESC","include":[{"relation":"follow-restaurants","scope":{"where":{"m_id":""}}},{"relation":"members"},{"relation":"favorite-restaurants","scope":{"where":{"m_id":""}}}]}

Класс моей модели:

class RestaurantsData: NSObject {
    var title = String()
    var descriptions = String()
    var image1 = String()
    var postcommentsCount = String()
    var viewscount = String()
    var created = String()
    var members = [String:Any]()
    var mbersdata = membersData()
    func getRestaurentData(dataArray: [[String:Any]]) -> [RestaurantsData] {
        var array = [RestaurantsData]()
        let mObj = membersData()

        for item in dataArray {
            let obj = RestaurantsData()
            obj.title = item.validatedValue("title", expected: String() as AnyObject) as! String
            obj.descriptions = item.validatedValue("description", expected: String() as AnyObject) as! String
            obj.image1 = item.validatedValue("image1", expected: String() as AnyObject) as! String
            obj.postcommentsCount = item.validatedValue("post-commentsCount", expected: String() as AnyObject) as! String
            obj.viewscount = item.validatedValue("views_count", expected: String() as AnyObject) as! String
            obj.created = item.validatedValue("created", expected: String() as AnyObject) as! String
            obj.members = item.validatedValue("members", expected: [String:Any]() as AnyObject) as! [String:Any]
            obj.mbersdata =   mObj.getMemberData(dataDic:obj.members)
            array.append(obj)
        }
        return array
    }
    //Mark:- Class created for member data

    class membersData: NSObject {
        var photo = String()
        var created = String()
        var username = String()
        func getMemberData(dataDic: [String:Any]) -> membersData {
            let obj = membersData()

            obj.username = dataDic.validatedValue("username", expected: String() as AnyObject) as! String
            obj.created = dataDic.validatedValue("created", expected: String() as AnyObject) as! String
            obj.photo = dataDic.validatedValue("photo", expected: String() as AnyObject) as! String

            return obj

        }
    }
}

Мой код: - Я использую Alamofire

 var dataArray = [RestaurantsData]()

   //MARK: Web API calling
   func ShowRestaurantsData(){

      var params = [String:Any]
            params = [
                "counts":"restaurant-comments",
                "order":"created DESC",
                "include":[["relation":"follow-restaurants","scope":["where":["m_id":""]]],["relation":"members"],["relation":"favorite-restaurants","scope":["where":["m_id":""]]]

      Alamofire.request( "https://myfoodtalk.com:3001/api/restaurants", method:.get, parameters: nil, headers: nil).responseJSON { (responseObject) -> Void in
                switch responseObject.result
                {
                case .success(let value):
                    let dataArray = value as! [[String:Any]]
                    print("JSON Response:::::: \(dataArray)")

                    let obj = RestaurantsData()
                    self.dataArray = obj.getRestaurentData(dataArray: dataArray)
                    self.tableView.reloadData()

                case .failure(let error):
                    print(error)
                }
            }

        }

1 Ответ

1 голос
/ 16 апреля 2019

По вашему запросу

Alamofire.request( "https://myfoodtalk.com:3001/api/restaurants", method:.get, parameters: nil, headers: nil).responseJSON { (responseObject) -> Void in

Вы проходите "

параметры как ноль

что не так, передайте "params" ...

...