比如一个项目的bean对象,有很多个坐标信息,通常服务器把他们当成数组传下来,我们客户端把他们放在List里面,用Gson很容易就解析出来了,一切都是如此完美。突然,要求把这些对象存储在本地数据库,这时候懵逼的发现数据库不支持List这个数据类型,那我们如何保存这种非基础数据类型呢?
{
"areaInfo": [
{
"longitude": 106.4621997480343,
"latitude": 29.510238334206996
},
{
"longitude": 106.45794048667334,
"latitude": 29.510538137429645
},
{
"longitude": 106.45197740193589,
"latitude": 29.50990225016947
}],
"projectTypeName": "路灯",
"projectId": "13",
"projectName": "智博会路灯",
}
一、初级做法
和服务器协议商定将数组转成string类型再传下来,我们直接把这个string存储起来即可。要用时候,再把这个string用Gson解析成List。
这么做显得很low。。。
二、高级做法
room大佬可能想到我们会有这些乱七八糟脑路清奇的想法,给我们提供了类型转换这一高级工具,让我们爱怎么折腾就怎么折腾。
- 现在,我们这个bean就要这样写了:
@Entity
pub