【发布时间】:2015-06-17 20:02:10
【问题描述】:
我正在共享首选项中存储一个对象。为此,我在存储对象之前使用 gson 库和类型适配器对对象进行序列化。
这是我的对象在 json 中的样子:
{
"id": 0,
"name": "Sensor 2D:D3:5C",
"address": "00:07:80:2D:D3:5C",
"device": {
"mAddress": "00:07:80:2D:D3:5C"
},
"temp": "31342e37"
}
这一切都有效,但在反序列化“设备”时无效,因为它是一个 BluetoothDevice 对象,而不是简单的字符串或 int 值。如何告诉我的 TypeAdapter 正确反序列化它?
下面看一下我的typeadapter的read方法:
@Override
public myDevice read(final JsonReader in) throws IOException {
final myDevice dv= new myDevice();
in.beginObject();
while (in.hasNext()) {
switch (in.nextName()) {
case "id":
dv.setId(in.nextInt());
break;
case "name":
dv.setName(in.nextString());
break;
case "address":
dv.setAddress(in.nextString());
break;
case "temp":
dv.setTemp(in.nextString());
break;
case "device":
//What do I do here??
//dv.setDevice(in.????);
break;
}
}
in.endObject();
return vd;
}
【问题讨论】:
标签: java json serialization gson deserialization