Ehs*_*san 5 android gson retrofit2
我正在使用Retrofit向我的服务器发送和接收请求.
我有一个类似下面的模型,我必须将它发送到我的服务器,但这个模型中的一些变量不能发送到服务器.
public class SelectedListModel implements Serializable {
@SerializedName("p_id")
@Expose
private Long pId;
@SerializedName("p_qty")
@Expose
private Double pQty;
@Expose(serialize = false , deserialize = false)
private String pName; //Have not to send to server
@Expose(serialize = false , deserialize = false)
private String pPrice; //Have not to send to server
@Expose(serialize = false , deserialize = false)
private String pImageUrl; //Have not to send to server
}
Run Code Online (Sandbox Code Playgroud)
因此,我从服务器得到的回复是400.我用它@Expose(serialize = false, deserialize = false)来忽略那些没有发送到服务器的变量.但它不起作用.有没有办法做到这一点,或者我必须为我的服务器创建另一个模型?
请求api调用时可以使用transient关键字忽略字段
爪哇:
transient String name;
Run Code Online (Sandbox Code Playgroud)
科特林:
@Transient
var name: String
Run Code Online (Sandbox Code Playgroud)
使用transient关键工作
public class SelectedListModel implements Serializable {
@SerializedName("p_id")
@Expose
private Long pId;
@SerializedName("p_qty")
@Expose
private Double pQty;
//@Expose(serialize = false , deserialize = false)
private transient String pName; //Have not to send to server
//@Expose(serialize = false , deserialize = false)
private transient String pPrice; //Have not to send to server
//@Expose(serialize = false , deserialize = false)
private transient String pImageUrl; //Have not to send to server
}
Run Code Online (Sandbox Code Playgroud)
并且无需使用@Expose(serialize = false , deserialize = false),进入那些需要被排除的领域.
阅读为什么Java有瞬态字段?而为什么要使用Java中的`transient`关键字?更多细节.
| 归档时间: |
|
| 查看次数: |
2056 次 |
| 最近记录: |