Невозможно создать экземпляр с параметрами клаксона - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь разобрать JSON ответ с Клаксоном в моем kotlin проекте. вот ответ JSON, который я получаю:

[
    {
        "user": {
            "username": "admin@admin.com"
        },
        "name": "Ahmed Wagdi",
        "username": "admin",
        "location": {
            "user": {
                "username": "admin@admin.com"
            },
            "name": "Ahmed Wagdi",
            "phone": "01207199086",
            "latitude": "47.667159",
            "longitude": "32.288021"
        },
        "type": "Manager",
        "direct_manager": null
    }
]

А вот код, который я использую для его получения:

    private fun signIn() {
        val url = "http://my_url/api/employees"
        val request = Request.Builder().url(url)
            .header("Authorization", "Basic my_auth_data")
            .build()
        val client = OkHttpClient()
        client.newCall(request).enqueue(object : Callback {
            override fun onFailure(call: Call, e: IOException) {
                println("failed to get it : $e")
            }

            override fun onResponse(call: Call, response: Response) {
                val body = response.body?.string()
                val result = Klaxon()
                    .parseArray<Account>(
                        body.toString()
                    )
                println("response is $result")
            }
        })

    }

class Account(val name: String, val username: String, val type: String, val direct_manager: String)

I ' Я создал все это на основе Официального репо из Klaxon и получаю эту ошибку:

Unable to instantiate Account with parameters [direct_manager: null, name: Ahmed Wagdi, type: Manager, username: admin]

...