如何附加两个数据,一个来自api,另一个来自文件

时间:2018-10-09 08:37:27

标签: ios

如何将2个api数据组合在一起。

我有2个api 例如:-http://example1.comhttp://example2.com

数据模式如下。

data1和data2-都是相同的模式。

{
    "data":[
              {
              "question": "Gender",
              "options": ["Male","Female"],
              "button_type":"2"
              },
              {
              "question": "How old are you",
              "options": ["Under 18","Age 18 to 24","Age 25 to 40","Age 41 to 60","Above 60"],
              "button_type":"2"
             }
              ]
}

我需要在表格视图中列出数据。

我的代码如下。 在视图模型中:-

 func loadData(completion :@escaping (_ isSucess:Bool) -> ()){


        loadFromWebserviceData { (newDataSourceModel) in

            if(newDataSourceModel != nil)
            {

                self.datasourceModel = newDataSourceModel!
                completion(true)

            }
            else{
                completion(false)
            }
        }
    }
  func loadFromWebserviceData(completion :@escaping (NH_QuestionDataSourceModel?) -> ()){


        //with using Alamofire  ..............
        //  http://localhost/json_data/vendorlist.php
        Alamofire.request("http://www.example.com").validate(statusCode: 200..<300).validate(contentType: ["application/json"]).responseJSON{ response in

            let status = response.response?.statusCode
            print("STATUS \(status)")


            print(response)

            switch response.result{

         case .success(let data):
                print("success",data)


                let result = response.result

                print(result)

                if  let wholedata = result.value as? [String:Any]{

                    print(wholedata)


                    if  let data = wholedata["data"] as? Array<[String:Any]>{

                        print(data)
                        print(response)

                        for question in data {

                            let typebutton = question["button_type"] as? String
                            print(typebutton)
                            self.type = typebutton

                            let options = question["options"] as! [String]

                         //   self.dataListArray1 = [options]
                            self.tableArray.append(options)
                           // self.savedataforoptions(completion: <#T##(NH_OptionslistDataSourceModel?) -> ()#>)

                            self.no = options.count
                        }

                        print(self.tableArray)


                        let newDataSource:NH_QuestionDataSourceModel = NH_QuestionDataSourceModel(array: data)

                        completion(newDataSource)

                    }

                }


            case .failure(let encodingError ):
                print(encodingError)

                //  if response.response?.statusCode == 404{

                print(encodingError.localizedDescription)

                completion(nil)

            }

        }}

上面的代码是json。

接下来我有文件.from我编码如下。

 func loadFromDummyData(completion :@escaping (NH_DummyDataSourceModel?) -> ()){


        if let path = Bundle.main.path(forResource: "jsonData", ofType: "json") {
            do {
                let jsonData = try NSData(contentsOfFile: path, options: NSData.ReadingOptions.mappedIfSafe)

                do {
                    let jsonResult: NSDictionary = try JSONSerialization.jsonObject(with: jsonData as Data, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary


                    if let people  = jsonResult["data"] as? Array<[String:Any]> {
                        //  self.dict = people



                        for person in people {

                            let options = person["options"] as! [String]


                            self.tableArray.append(options)



                            let name = person ["question"] as! String

                                                      self.tableArray.append(options)
                        }
                        let newDataSource:NH_DummyDataSourceModel = NH_DummyDataSourceModel(array: people)

                        completion(newDataSource)


                    }



                } catch {}
            } catch {}
        }

    }

    func loadData1(completion :@escaping (_ isSucess:Bool) -> ()){


        loadFromDummyData{ (newDataSourceModel) in

            if(newDataSourceModel != nil)
            {

                self.datasourceModel = newDataSourceModel!
                completion(true)

            }
            else{
                completion(false)
            }
        }
    }

我的数据源模型如下:-

class NH_QuestionDataSourceModel: NSObject {

    var dataListArray:Array<NH_QuestionListModel>? = []

    var list:Array<NH_OptionsModel>? = []


    init(array :Array<[String:Any]>?) {
        super.init()



        var newArray:Array<[String:Any]> = []
        if array == nil{

            // newArray = self.getJsonDataStored22()
        }
        else{
            newArray = array!

        }

        var datalist:Array<NH_QuestionListModel> = []
        for dict in newArray{

            let model = NH_QuestionListModel(dictionary: dict)

            datalist.append(model)
        }
        self.dataListArray = datalist
        print(self.dataListArray)
    }

}

如何将这两个数据附加在一起?

0 个答案:

没有答案