Ios 解析JSON时,使用Alamofire的API服务中的数据变为零

Ios 解析JSON时,使用Alamofire的API服务中的数据变为零,ios,json,dictionary,alamofire,swift4.2,Ios,Json,Dictionary,Alamofire,Swift4.2,我正要从API获取数据,当我试图打印API的响应时,它打印成功,当我试图打印对象的数据时,它也打印成功,但当我在我的APIService中选中变量attenders时,该值始终为nil,这就是为什么在UI中传递值时,它也会变成nil。如何从JSON获取数据以反映Api服务中的attendess。对此我太困惑了。请帮帮我。多谢各位 API服务中的getParticipant函数 func getParticipants(passcode: String,

我正要从API获取数据,当我试图打印API的响应时,它打印成功,当我试图打印对象的数据时,它也打印成功,但当我在我的
APIService
中选中变量attenders时,该值始终为nil,这就是为什么在UI中传递值时,它也会变成nil。如何从JSON获取数据以反映Api服务中的attendess。对此我太困惑了。请帮帮我。多谢各位

API服务中的getParticipant函数

func getParticipants(passcode: String,
                     participantType: ParticipantType,
                     successBlock: @escaping (Attendees?) -> Void,
                     failureBlock: @escaping (Error) -> Void)
{
    let attendeesURL = URL(string: "\(GET_PARTICIPANTS_URL)/\(passcode)/\(participantType)")

    Alamofire.request(attendeesURL!, method: .get).responseJSON { (response) in
        print(response)

        if let error = response.error
        {
            failureBlock(error)
            return
        }

        if let attendeeJSON = response.result.value as? [Dictionary<String, Any>],
            let attendeeObj = attendeeJSON.first {
            print(attendeeObj)
            let attendees = Attendees.init(JSON: attendeeObj)
            successBlock(attendees)
            }
        }
    }

}
示例JSON

[
{
    "event_name": "Laugh Trip",
    "event_participants": [
        {
            "participant_id": "6f1e7fd5-6da9-4d5b-bc91-4771aeaa5235",
            "employee_number": "",
            "last_name": "name",
            "first_name": "name",
            "middle_name": "",
            "display_name": "name, name ",
            "department_name": "IT",
            "position_name": "Application Developer",
            "registered_flag": true,
            "registered_datetime": "2018-07-16T14:51:57.813",
            "registration_type": 1,
            "delete_flag": false,
            "manual_reg_flag": false,
            "out_flag": true,
            "out_datetime": "2018-07-16T14:54:00.000",
            "classification": 1,
            "others": ""
        },

由于您的与会者模型的数据类型不匹配

  • 您应该检查每个参数的响应数据类型,并与创建的与会者数据类型进行比较

我希望这能起作用,因为我遇到了这个问题并解决了它

根对象似乎是一个字典。@vadian我如何调试它?谢谢,抱歉,我想我编辑过度了,我有代码。谢谢,太好了。我建议丢失屏幕快照和所有这些不相关的代码,并向我们展示(a)
与会者
定义及其
init(JSON:)
方法;(b)您能给我们展示一个实际JSON的典型示例,而不是打印
响应
?除非我们能看到原始的JSON,否则会有一些微妙的问题丢失。例如,当您打印
响应
时,我们无法区分数字类型和包含数字类型的字符串(这是常见的问题来源)。只有通过查看原始JSON,我们才能对此进行诊断。我正在使用邮递员检查原始JSON。行吗?对不起,我不明白。我对斯威夫特一无所知。你有推荐信吗?谢谢。你能告诉我你在Attendes中做什么吗?我编辑了我的问题,在View Controller中添加了Attendes类、JSON和getParticipant函数。感谢您将设置为零,如果数据类型为Bool,则设置默认值为False,如果数据类型为String,则设置默认值为空字符串“”,如果数据类型为Int,则设置默认值为0并重试,我将放置代码的哪一部分?抱歉,我真的很困惑
[
{
    "event_name": "Laugh Trip",
    "event_participants": [
        {
            "participant_id": "6f1e7fd5-6da9-4d5b-bc91-4771aeaa5235",
            "employee_number": "",
            "last_name": "name",
            "first_name": "name",
            "middle_name": "",
            "display_name": "name, name ",
            "department_name": "IT",
            "position_name": "Application Developer",
            "registered_flag": true,
            "registered_datetime": "2018-07-16T14:51:57.813",
            "registration_type": 1,
            "delete_flag": false,
            "manual_reg_flag": false,
            "out_flag": true,
            "out_datetime": "2018-07-16T14:54:00.000",
            "classification": 1,
            "others": ""
        },