我正在使用gson lib和我的数据模型类,如下所示:
Class User implements Parcelable{
@SerializedName("user_id")
int id;
@SerializedName("is_working")
@JsonAdapter(BooleanTypeAdapter.class)
boolean isWorking;
protected User(Parcel in){
id = in.readInt();
isWorking = in.readByte() ! = 0;
}
...
}
Json数据包含的id为整数,例如1234,is_working也为整数(0/1)。
要将int转换为boolean,我使用了BooleanTypeAdapter类,如下所示:
public class BooleanTypeAdapter extends TypeAdapter<Boolean>{
@Override
public void write(JsronWriter out , Boolean value) throws IOException{
if(value == null)
out.nullValue();
else
out.value(value);
}
@Override
public Boolean read(JsonReader in) throws IOException{
JsonToken peek = in.peek();
switch(peek){
case BOOLEAN:
return in.nextBoolean();
case NUMBER:
return in.nextInt() > 0;
}
}
}
获取数据的主要代码:
ArrayList userList = gson.from(jsonResp,new TypeToken>(){}。getType());
在调试时,我注意到它本身没有输入BooleanTypeAdapter类。
请帮助我找出错误的地方。