Очень странный ответ на модификацию - PullRequest
0 голосов
/ 12 января 2020

Это мое тело ответа.

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class MatchResponse {
    private Match match;
    private Member member;
}

Я вызвал REST API и получил ответ от сервера.

Журнал сервера показывает, что все поля установлены правильно, особенно ' mId '540.

MatchResponse(match=Match(mId=540, id1=232, id2=3, date=2020-01-13 00:42:13.0, isAcceptedByUser1=false, isAcceptedByUser2=false, isMade=false), member=Member(mId=232, email=test228@gmail.com, password=$2a$10$hj1rs6vTDYkMf0KlSsTV7.ZG.cW23L0UbS0bXUUZaPqLzXLDCUPki, name=null, phone=null, yearOfBirth=1989, gender=male, jobType=null, jobTitle=null, company=구글 코리아, areaType=null, areaName=강남역, roles=[MemberRole(no=229, roleName=MEMBER)]))

Однако клиент показывает, что' mId 'в классе' Match 'равно 0 !!! Странно то, что все остальные поля установлены правильно.

Ниже находится журнал Android Studio. Почему только одно поле 'mId' не установлено здесь ??? Кто-нибудь мне помогает?

Обновление: класс матча

public class Match { private int mId; private int id1; private int id2; private Date date; private boolean isAcceptedByUser1; private boolean isAcceptedByUser2; private boolean isMade; public boolean isArranged() { return isAcceptedByUser1 && isAcceptedByUser2; } } 

enter image description here

1 Ответ

0 голосов
/ 13 января 2020

Это было вызвано тем, что JSON парсер изменил имя поля при маршалинге. Я решил эту проблему, указав, что изменил ключ JSON с аннотацией @SerializedName. Другой способ - явно установить ключ JSON на стороне сервера с помощью аннотации @JSONProperty. В любом случае, дело в том, чтобы поддерживать согласованность имен между классом (сервер и клиент) и JSON.

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