改造调用提供默认值,而不是所需的值

时间:2018-12-27 20:11:23

标签: android kotlin retrofit

我遇到的问题是,当我对后端进行改造调用时,它知道有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 :(得分:-1)

解决了@SerializedName必须为@field:Json(name =“ BreakId”)

的问题