首页 > 解决方案 > 在 swift 4.0 中获取 JSON 数据时出错

问题描述

我来自服务器的数据没有加载到我的表格视图中,并且从服务器给我这个错误

我的 JSON 看起来像这样,并且数据不是来自服务器:

[
    {
        "emp_id": "1",
        "fname": "Shreya",
        "lname": "Shah",
        "email_id": "shreyashah@gmail.com",
        "password": "shreya123",
        "date_of_birth": "14/03/1995",
        "gender": "Female",
        "street1": "Arbudgiri Society",
        "street2": "Nr.Rambaug Road",
        "city": "Ahmedabad",
        "zipcode": "380005",
        "country": "India",
        "country_code": "+91",
        "phone_no": "456544545",
        "emp_img": "employeeImages/shreyashah@gmail.com_services-pic2.jpg",
        "emp_desig": "PHP Developer",
        "emp_skills": "html,php,css,jquery,javascript",
        "emp_edu": "BCA,MCA",
        "emp_exp": "3years",
        "emp_notice_period": "30days",
        "emp_lang": "english,hindi,gujarati"
    },
    {
        "emp_id": "2",
        "fname": "Harish",
        "lname": "Verma",
        "email_id": "harishverma@gmail.com",
        "password": "harish123",
        "date_of_birth": "22/07/1994",
        "gender": "Female",
        "street1": "Satyam Skyline",
        "street2": "Nr.Sola Cross Roads",
        "city": "Ahmedabad",
        "zipcode": "380005",
        "country": "India",
        "country_code": "+91",
        "phone_no": "964783214",
        "emp_img": "employeeImages/harishverma@gmail.com_services-pic2.jpg",
        "emp_desig": "iOS Team Lead",
        "emp_skills": "objective-c,swift",
        "emp_edu": "BCA,MCA",
        "emp_exp": "3years",
        "emp_notice_period": "30days",
        "emp_lang": "english,hindi,gujarati"
    }
]

我在 VIEWCONTROLLER 代码中的代码已解码 json 并在我的文件中使用它:

import UIKit


struct EmployeeDisplayData: Decodable {
    let emp_img: String
    let fname: String
    let emp_desig: String
    let emp_exp: String
    let country: String
    let emp_notice_period: String
}

class UserViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var mainTableView: UITableView!

    let URL_GET_DATA = "http://172.16.1.22/Get-Employee-API/get-employee/"


    var employeeArray = [EmployeeDisplayData]()
    override func viewDidLoad() {
        super.viewDidLoad()

        self.mainTableView.delegate = self
        self.mainTableView.dataSource = self
        getEmployee()
        // Do any additional setup after loading the view, typically from a nib.
        // Do any additional setup after loading the view.
    }
    func getEmployee(){
        let empURL = URL(string: "http://172.16.1.22/Get-Employee-API/get-employee/")
        URLSession.shared.dataTask(with: empURL!) { (data, response, error) in
            do
            {
                if error == nil
                {
                    self.employeeArray = try JSONDecoder().decode([EmployeeDisplayData].self, from: data!)

                    for mainArr in self.employeeArray
                    {
                        DispatchQueue.main.async {
                            self.mainTableView.reloadData()
                        }
                    }
                    print("****Employee Data****\(self.employeeArray)")
                }
            }
            catch
            {
                print("Error in get JSON Data Employee\(error)")
            }
            }.resume()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return employeeArray.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell:EMpTableViewCell = tableView.dequeueReusableCell(withIdentifier: "EMpTableViewCell") as! EMpTableViewCell
        let empData = employeeArray[indexPath.row]
        cell.lblOne.text = empData.fname
        cell.lblTwo.text = empData.emp_desig
        cell.lblThree.text = empData.emp_exp
        return cell 
    }
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 100
    }

}

有人可以帮我解决这个错误我不知道这个错误是什么意思我在大多数地方都看到了相同类型的错误并试图解决它但仍然来自服务器的相同错误

我的邮递员我的邮递员长这样

它的原始视图[![它的预览视图] 4

标签: iosswift4

解决方案


我得到了同样的错误,我通过改变contentType和更多的东西进行了很多搜索,但没有一个是修复它。PostMan 原始预览选项卡响应让我知道确切的问题在哪里。

生的 在此处输入图像描述

预习 在此处输入图像描述

发生此错误是因为连接到 MySQL文本开始响应。因此,请告知您的开发人员,他会解决这个问题,并且可能会解决错误。


推荐阅读