Модифицировать вызов, чтобы получить модель со списком другой модели, не работающей - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть вызов Api в Android, который дал мне список наблюдаемых кадров, но проблема в том, что в моей модели я хочу получить список другой модели, но это не работает.Может ли кто-нибудь помочь мне с тем, как мне нужно это сделать, потому что я не могу его найти.

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

[
    {
        "FrameId": 4,
        "DurationFrame": 0,
        "PointsWinner": 0,
        "PointsOpponent": 0,
        "Winner": "",
        "MatchId": 58,
        "Breaks": [
            {
                "BreakId": 2,
                "Player": "Dennis",
                "MomentPlayed": "2018-12-30T13:05:08.223",
                "NumberPoints": 30,
                "Opponent": "Danny",
                "TypeBreak": "Match",
                "FrameId": 4
            }
        ]
    },
    {
        "FrameId": 5,
        "DurationFrame": 0,
        "PointsWinner": 0,
        "PointsOpponent": 0,
        "Winner": "",
        "MatchId": 58,
        "Breaks": []
    }
]

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

class Frame:Serializable {
    @field:Json(name = "FrameId")
    var frameId: Int = 0
    @field:Json(name = "DurationFrame")
    var durationFrame: Double = 0.0
    @field:Json(name = "PointsWinner")
    var pointsWinner: Int = 0
    @field:Json(name = "PointsOpponent")
    var pointsOpponent: Int = 0
    @field:Json(name = "Winner")
    var winner: String = ""
    @field:Json(name = "MatchId")
    var matchId: Int? = 0
    var breaks: List<Breaks> = null


    constructor() {}

    constructor(frameId: Int, durationFrame: Double, pointsWinner: Int,     pointsOpponent: Int, winner: String, matchId: Int) {
        this.frameId = frameId
        this.durationFrame = durationFrame
        this.pointsWinner = pointsWinner
        this.pointsOpponent = pointsOpponent
        this.winner = winner
        this.matchId = matchId

    }
}

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

@GET("api/Frames/matchid/{matchid}")
fun getFramesForMatchId(@Path("matchid") matchid : Int): Observable<List<Frame>>

Я звоню, чтобы получить все кадры определенного соответствия

1 Ответ

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

Поскольку имя вашего поля "breaks" не соответствует имени параметра json "Breaks", необходимо добавить соответствующую аннотацию:

...
@field:Json(name = "Breaks")
var breaks: List<Breaks> = null
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...