好的,我修改了问题,因为它不够清楚。
编辑2:更新了JSON文件。
我正在一个Android应用中使用GSON,并需要解析来自服务器的JSON文件,这些文件有点复杂。我不想让我的对象结构太过繁重,所以我希望简化内容:因此我的对象结构将不会与JSON文件的结构相同。
例如,如果在JSON中我有这个:
{
"object1":{
"attribute1" : "test1",
"attribute40" : "test40",
"user":{
"id":1,
"name":"foo"
}
,"example":{
"total":10,
"list":[
{
"tag":"tag1",
"name":"object name 1",
"pos":1
},
{
"tag":"tag10",
"name":"object name 10",
"pos":10
}
]
}
}
"object2":{
"attribute1":"test..."
}
}
我不想在当前对象结构中保留一个包含ArrayList
和int
"total"的Example
对象,而是想只保留一个简单字符串,其值为"object name 1;object name 2;..."
。
此外,我只想存储用户ID,而不是完整的用户信息,因为我已经在其他地方通过另一个服务器API调用将完整的用户信息存储。
因此,我的类应该是这样的:
class Foo{
int userId;
String example; //"object name 1;object name 2;..."
...
}
我想我们可以通过自定义反序列化器来实现这一点,但我不知道如何做。如果可能的话,我想尽量减少内存使用,因此我认为使用完整的对象示例来构建我的String example
并不是正确的方法。
最坏情况下,如果太复杂了,我至少希望能够在解析示例对象时仅存储标签项列表:因此我需要一个自定义反序列化器来去掉 int total
。
那么我会有:
class Foo{
int userId;
ArrayList<Tag> example;
...
}