在 Xcode 9 中使用 Alomofire 从服务器获取数据

Use Alomofire for get data from server in Xcode 9

我是 iOS 编程的初学者,但我在 android 工作,所以现在我在 iOS 遇到了问题。 我知道我的问题很笼统,但我真的需要你的帮助! 在 android 中连接到服务器,我们如下所示:

 Call<String> myList = service.Contact_List("");
        myList.enqueue(new Callback<String>() {
            @Override
            public void onResponse(Call<String> call, Response<String> response) {
                try{
                    ArrayList<Contact> contactArrayList = new ArrayList<>();
                    JSONArray jsonArray = new JSONArray(response.body());

                    for(int i=0 ; i<jsonArray.length() ; i++)
                        contactArrayList.add(gson.fromJson(jsonArray.getJSONObject(i).toString(), Contact.class));

                }catch (Exception e) {
                    Log.d("Catch","Error")
                }finally {

                }
            }

            @Override
            public void onFailure(Call<String> call, Throwable t) {
                Log.d("Failure","Error")
            }
        });

在 xcode 中,我喜欢下面的内容:

let url = URL(string: "http://api.example.com/Contact-List")
Alamofire.request(url!, method: HTTPMethod.post, parameters: param, encoding:  URLEncoding.default, headers: nil).responseJSON { (response) in
   print("response.request")
  print(response.request as Any)  // original URL request
   print("response.response")
    print(response.response as Any) // URL response
    print("response.result.value") 
}

我的结果是这样的:

[{"Id":1,"Name":"Mary","TelNumber":"09111111"},{"Id":2,"Name":"Sarah","TelNumber":"09222222"},
{"Id":3,"Name":"Ben","TelNumber":"09333333"}]

现在我的问题是,我怎样才能喜欢 Xcode(swift 3 ):

中的这段代码
for(int i=0 ; i<jsonArray.length() ; i++)
                            contactArrayList.add(gson.fromJson(jsonArray.getJSONObject(i).toString(), Contact.class));

此外,我在服务器端使用ASP.net。

我真的很抱歉我的问题又长又模棱两可! 感谢您的任何建议。

首先创建 NSObject swift 文件:

然后添加代码

class demo {

var ID: String
var Name: String


init(ID: String, Name: String) {
    self.ID = ID
    self.Name = Name

}
} 

这样试试:

let data = response.result.value
            if data != nil {
                self.presentWindow.hideToastActivity()
                if let response = data as? [[String: AnyObject]] {
                    for detail_data in response {
                        let Id = detail_data["Id"] as? String ?? ""
                        let Name = detail_data["Name"] as? String ?? ""
                        let demoObj = demo(ID: ID, Name: Name
                        self.demoObjects.append(demoObj)
                    } 
                }
             }

更新答案

用于将字符串响应转换为 JSON

示例代码如下所示。不要忘记处理展开的东西

let data1 = "[{\"Id\": 1,\"Name\": \"Mary\",\"TelNumber\": \"09111111\"},{\"Id\": 2,\"Name\": \"Sarah\",\"TelNumber\": \"09222222\"}]" //your JSON From API Response
    let data = data1.data(using: .utf8)
        do {
            let array = try JSONSerialization.jsonObject(with: data!) as! [[String : Any]]
                for detail_data in array {
                    let Id = detail_data["Id"] as? Int ?? 00
                    let Name = detail_data["Name"] as? String ?? ""
                    print("Id:",Id)
                    print("Name:",Name)
                    print("****")
                }


        } catch {
            print("Exception occured \(error))")
        }