我从MYSQL数据库中获取一些数据,我使用ARC获得的响应采用以下形式:
{
"Id": 1
-"Status": {
"type": "Buffer"
-"data": [1]
0: 0
}
"Updated": "2016-10-25T13:15:25.000Z"
"UserName": "Aidin"
}
在Android Studio中,我试图将其映射到具有Retrofit和Serialization的对象,如下所示:
@SerializedName("Id")
private int id;
@SerializedName("Status")
private boolean status;
@SerializedName("UserName")
private String name;
@SerializedName("Updated")
private Date updated;
public int getId() {
return id;
}
public String getName() {
return name;
}...
这适用于除Status
之外的每个变量。
我的问题是,我如何为MYSQL中的Bit值执行此操作,即Status
,它似乎是一个数组而不是一个简单的位值?
做
@SerializedName("Status")
private boolean status;
不起作用。 我能做到
@SerializedName("Status")
private LinkedTreeMap status;
稍后在getter中使用status.get("data")
并返回位值。
但我宁愿做类似的事情:
@SerializedName("Status.get(\"data\")")
private boolean status;
这可能吗?做的标准方法是什么? 我给出的示例返回一个空值。
阅读此主题后:Which MySQL data type to use for storing boolean values
我想我的问题更多的是关于在MySQL中用作布尔值的类型。尽管似乎存在关于适当布尔类型的争议,但大多数人似乎都赞成Tinyint。我选择了Bit,因为在我看来它似乎最接近布尔值,但我想我错了。更改为Tinyint我可以序列化并将整数值解析为布尔值,没问题,所以我的问题就解决了。
但是,有时候我需要使用一个以LinkedTreeMap形式呈现的数据类型,所以我仍然对是否可以使用类似的东西感到好奇:
@SerializedName("Status.get(\"data\")")
private boolean status;