У меня есть json вот так:
"items": [
{
"value": 111,
"from": 1,
"to": 2
},
{
"value": 222,
"from": 3,
"to": 4
},
{
"value": 333,
"from": 5,
"to": 6
}]
Java класс вот так:
public class Item{
String from1To2;
String from3To4;
String from5To6;
}
Я хотел бы создать один Java объект из 3 json объекты.
Я сделал что-то вроде этого: Десериализовать json:
@Override
public Item deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
JsonObject jsonObject = json.getAsJsonObject();
if (jsonObject.get("from").getAsString().equals("1")) {
from1 = Double.parseDouble(jsonObject.get("value").getAsString());
}
else if (jsonObject.get("from").getAsString().equals("3")) {
from3 = Double.parseDouble(jsonObject.get("value").getAsString());
}
else if (jsonObject.get("from").getAsString().equals("5")) {
from5 = Double.parseDouble(jsonObject.get("value").getAsString());
}
return new Item(from1, from3, from5);
}
если я десериализую, я получу несколько Java объектов, потому что у меня есть массив json объектов.
код запуска:
Gson gson = new GsonBuilder()
.registerTypeAdapter(Item.class, new ItemDesarializer())
.create();
Type itemsType = new TypeToken<ArrayList<Item>>(){}.getType();
ArrayList<Item> items = gson.fromJson(some_string, itemsType);
for(Item it : items) {
System.out.println(it);
}
КОНСОЛЬНЫЕ ЖУРНАЛЫ:
from 1 to 2: 111.0
from 3 to 4: 0.0
from 5 to 5: 0.0
from 1 to 2: 111.0
from 3 to 4: 222.0
from 5 to 6: 0.0
from 1 to 2: 111.0
from 3 to 4: 222.0
from 5 to 6: 333.0
Итак, у меня есть 3 объекта