Вызов Retrofit дает значения по умолчанию, а не необходимые значения - PullRequest
0 голосов
/ 27 декабря 2018

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я выполняю ретрофит-вызов к своему бэкэнду, он знает, что существует 4 объекта, но все объекты имеют значения по умолчанию вместо правильных значений.Когда я делаю звонок в почтальоне, он дал мне правильные значения, поэтому проблема в моем коде Android.Может ли кто-нибудь помочь?

Ниже вы найдете код моей модели.

class Breaks : Serializable{
@SerializedName("BreakId")
var breakId:Int = 0
@SerializedName("Player")
var player:String = ""
@SerializedName("MomentPlayed")
var momentPlayed:String = ""
@SerializedName("NumberPoints")
var numberPoints:Int = 0
@SerializedName("Opponent")
var opponent:String = ""
@SerializedName("TypeBreak")
var typeBreak:String = ""
@SerializedName("FrameId")
var frameId:Int? = 0

constructor(){}

constructor(breakId: Int, player: String, momentPlayed: String, numberPoints: Int, opponent: String, typeBreak: String, frameId: Int?) {
    this.breakId = breakId
    this.player = player
    this.momentPlayed = momentPlayed
    this.numberPoints = numberPoints
    this.opponent = opponent
    this.typeBreak = typeBreak
    this.frameId = frameId

}

constructor(breakId: Int,  player: String, momentPlayed: String, numberPoints: Int, opponent: String,  typeBreak: String) {
    this.breakId = breakId
    this.player = player
    this.momentPlayed = momentPlayed
    this.numberPoints = numberPoints
    this.opponent = opponent
    this.typeBreak = typeBreak

}

constructor(breakId: Int,  player: String, numberPoints: Int, opponent: String,  typeBreak: String) {
    this.breakId = breakId
    this.player = player
    this.numberPoints = numberPoints
    this.opponent = opponent
    this.typeBreak = typeBreak

}
fun getTotalOfPoints(): Int {
    return numberPoints
}

fun setTotalOfPoints(numberPoints: Int) {
    this.numberPoints = numberPoints
}

fun getTypeBreaks(): String {
    return typeBreak
}

fun setTypeBreaks(typeBreak: String) {
    this.typeBreak = typeBreak
}}

Ниже вы можете найти код, где я делаю мой модернизированный вызов

        var call: Call<List<Breaks>>
    call = snookerApi.getBreaks()
    call.enqueue(object: Callback<List<Breaks>> {
        override fun onResponse(call: Call<List<Breaks>>, response: Response<List<Breaks>>) {
            val statusCode = response.code()
            if(statusCode == 200) {
                var Breaks = response.body()!!.toList()
                Log.d("","gelukt")
            }
        }
        override fun onFailure(call: Call<List<Breaks>>, t: Throwable) {
            Log.d("",t.toString())
        }
    })

НижеВы найдете API-вызов

    @GET("api/Breaks")
fun getBreaks(): Call<List<Breaks>>

Ниже вы найдете то, что мне нужно и что я получаю в почтальоне

[
{
    "BreakId": 1,
    "Player": "Bart",
    "MomentPlayed": "2018-11-12T14:47:00",
    "NumberPoints": 49,
    "Opponent": "Dennis",
    "TypeBreak": "training",
    "FrameId": null
},
{
    "BreakId": 2,
    "Player": "Bart",
    "MomentPlayed": "2018-11-12T14:47:00",
    "NumberPoints": 49,
    "Opponent": "Dennis",
    "TypeBreak": "training",
    "FrameId": null
},
{
    "BreakId": 3,
    "Player": "Dennis",
    "MomentPlayed": "2018-11-12T14:47:00",
    "NumberPoints": 49,
    "Opponent": "Bart",
    "TypeBreak": "training",
    "FrameId": null
},
{
    "BreakId": 4,
    "Player": "Dennis",
    "MomentPlayed": "2018-11-12T14:47:00",
    "NumberPoints": 49,
    "Opponent": "Koen",
    "TypeBreak": "training",
    "FrameId": null
}

]

1 Ответ

0 голосов
/ 27 декабря 2018

Решена проблема, когда @SerializedName должно было быть @field: Json (name = "BreakId")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...