我遇到的问题是,当我对后端进行改造调用时,它知道有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
}
]
答案 0 :(得分:-1)
解决了@SerializedName必须为@field:Json(name =“ BreakId”)
的问题