Это из-за @FormUrlEncoded и @Field.Если я сохраню своего пользователя следующим образом:
@POST("users")
@FormUrlEncoded
Call<User> registerFormUser(@Field("name") String name,
@Field("verified_acc") boolean verified_acc,
@Field("points") int points);
, то результатом JSON будет:
{
"name": "Robert",
"verified_acc": "false",
"points": "0",
"id": 8
}
Так что мои логические значения и значения int теперь являются строками.
Ноесли вы сохраните его следующим образом:
@POST("users")
Call<User> registerUser(@Body User user);
, то результатом JSON будет:
{
"id": 9,
"name": "George",
"points": 0,
"verified_acc": false
}
Единственная проблема со вторым подходом состоит в том, что он меняет порядок в алфавитном порядке.Если у вас нет проблем с этим, можно сохранить его без преобразования полей в строки.