Отправка класса модели с логическими значениями для модификации конечной точки, которая иногда не принимает это логическое значение - PullRequest
0 голосов
/ 12 марта 2020

Я хочу игнорировать логическое значение при отправке запроса, все остальные типы данных работают нормально, но логическое значение по умолчанию установлено в false и отправляется даже тогда, когда конечная точка его не принимает. ПРИМЕЧАНИЕ. Я не хочу использовать переходный процесс в GSON, потому что другие конечные точки принимают это логическое значение

public class UserModel implements Parcelable {

@SerializedName("agePrivate")
@Expose
private  boolean agePrivate;

@SerializedName("username")
@Expose
private String username;

@SerializedName("_id")
@Expose
private String _id;

@SerializedName("user_id")
@Expose
private String user_id;

@SerializedName("email")
@Expose
private String email;

@SerializedName("phone")
@Expose
private String phone;

@SerializedName("birthdayDate")
@Expose
private String birthdayDate;

@SerializedName("job")
@Expose
private String job;
@SerializedName("image")
@Expose
private String image;
@SerializedName("location")
@Expose
private LocationModel location;
private String freind_status;

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Это довольно просто, boolean значение по умолчанию для примитивного типа всегда false. Вам следует заменить boolean на эквивалентный тип объекта, равный Boolean, а его значение по умолчанию - null, а значение null будет игнорироваться Gson.

Заменить:

@SerializedName("agePrivate")
@Expose
private  boolean agePrivate;

на

@SerializedName("agePrivate")
@Expose
private Boolean agePrivate;
0 голосов
/ 12 марта 2020

Вы можете переключиться на другой подход, такой как отправка значения данных по значению путем извлечения значений из объекта.

@GET("/endpoint")
Call<List<model>>    getdata(@Field("location") String var, ....);

Вызов этого при создании объекта вызова, подобного этому

Call<List<model>> call = interface.getdata(obj.getLocation(),...);

Тогда это будет легко сделать.

...