Хорошо, поэтому я отредактировал вопрос, потому что он не был достаточно ясен.
Редактировать 2 : обновлен файл JSON.
Я использую GSON в приложении для Android, и мне нужно проанализировать 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..."
}
}
Я не хочу сохранять в моей текущей объектной структуре объект Example
, который содержит ArrayList
и int
"total". Но я бы хотел оставить только простую строку со значением "object name 1;object name 2;..."
.
Кроме того, я хотел бы хранить только идентификатор пользователя, а не полный пользователя, поскольку у меня уже есть полный пользователь, сохраненный где-то еще, с другим вызовом API сервера.
Так что мой класс будет примерно таким:
class Foo{
int userId;
String example; //"object name 1;object name 2;..."
...
}
Так что я полагаю, что мы можем достичь этого с помощью специального десериализатора, но я не могу найти, как это сделать. Я хотел бы, если возможно, минимизировать память, поэтому я не думаю, что иметь полный пример объекта, а затем использовать его для построения моего String example
- правильный путь.
В худшем случае, если это слишком сложно, я хотел бы иметь возможность сохранять хотя бы только список элементов Tag, когда я анализирую Пример объекта: поэтому мне нужен собственный десериализатор для избавления от int total
.
Итак, я бы получил:
class Foo{
int userId;
ArrayList<Tag> example;
...
}