Я пытаюсь создать кэш для игры с использованием файлов JSON. Запись и извлечение этих данных будет осуществляться с использованием GSON. У меня есть файл JSON, содержащий несколько объектов, внутри этих объектов хранятся и другие объекты.Извлечение вложенных объектов из файла JSON с использованием Gson
Мой вопрос: как получить эти данные наилучшим образом?
Объект 1:
public class GameItem {
private final int id;
private final String name;
private final String description;
private final int shopValue;
private final ItemStats stats;
public GameItem(int id, String name, String description, int shopValue, ItemStats stats) {
this.id = id;
this.name = name;
this.description = description;
this.shopValue = shopValue;
this.stats = stats;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public int getShopValue() {
return shopValue;
}
public ItemStats getStats() {
return stats;
}
}
Объект 2:
public class ItemStats {
private final int stabAttack;
private final int slashAttack;
private final int crushAttack;
private final int magicAttack;
private final int rangeAttack;
private final int stabDefence;
private final int slashDefence;
private final int crushDefence;
private final int magicDefence;
private final int rangeDefence;
private final int strengthBonus;
private final int prayerBonus;
public ItemStats(int stabAttack, int slashAttack, int crushAttack, int magicAttack, int rangeAttack, int stabDefence, int slashDefence, int crushDefence, int magicDefence, int rangeDefence, int strengthBonus, int prayerBonus) {
this.stabAttack = stabAttack;
this.slashAttack = slashAttack;
this.crushAttack = crushAttack;
this.magicAttack = magicAttack;
this.rangeAttack = rangeAttack;
this.stabDefence = stabDefence;
this.slashDefence = slashDefence;
this.crushDefence = crushDefence;
this.magicDefence = magicDefence;
this.rangeDefence = rangeDefence;
this.strengthBonus = strengthBonus;
this.prayerBonus = prayerBonus;
}
public int getStabAttack() {
return stabAttack;
}
public int getSlashAttack() {
return slashAttack;
}
public int getCrushAttack() {
return crushAttack;
}
public int getMagicAttack() {
return magicAttack;
}
public int getRangeAttack() {
return rangeAttack;
}
public int getStabDefence() {
return stabDefence;
}
public int getSlashDefence() {
return slashDefence;
}
public int getCrushDefence() {
return crushDefence;
}
public int getMagicDefence() {
return magicDefence;
}
public int getRangeDefence() {
return rangeDefence;
}
public int getStrengthBonus() {
return strengthBonus;
}
public int getPrayerBonus() {
return prayerBonus;
}
}
JSON данные:
[
{
"id": 0,
"name": "Dwarf_remains",
"description": "The_body_of_a_Dwarf_savaged_by_Goblins.",
"shopValue": 1,
"stats": [
"stabAttack": 0,
"slashAttack": 0,
"crushAttack": 0,
"magicAttack": 0,
"rangeAttack": 0,
"stabDefence": 0,
"slashDefence": 0,
"crushDefence": 0,
"magicDefence": 0,
"rangeDefence": 0,
"strengthBonus": 0,
"prayerBonus": 0
]
},
{
"id": 1,
"name": "Toolkit",
"description": "Good_for_repairing_a_broken_cannon.",
"shopValue": 1,
"stats": [
"stabAttack": 0,
"slashAttack": 0,
"crushAttack": 0,
"magicAttack": 0,
"rangeAttack": 0,
"stabDefence": 0,
"slashDefence": 0,
"crushDefence": 0,
"magicDefence": 0,
"rangeDefence": 0,
"strengthBonus": 0,
"prayerBonus": 0
]
},
{
"id": 2,
"name": "Cannonball",
"description": "Ammo_for_the_Dwarf_Cannon.",
"shopValue": 3000,
"stats": [
"stabAttack": 0,
"slashAttack": 0,
"crushAttack": 0,
"magicAttack": 0,
"rangeAttack": 0,
"stabDefence": 0,
"slashDefence": 0,
"crushDefence": 0,
"magicDefence": 0,
"rangeDefence": 0,
"strengthBonus": 0,
"prayerBonus": 0
]
}
]
Вы делаете хорошо, просто делают частные статы окончательного ItemStats в качестве частного окончательного списка статистика, потому что это массив происходит от «Статистики»: [....], но вам не хватает [{} ... .] внутри массива в json, так что, может быть. –
Не знаете, что вы имеете в виду, не могли бы вы привести мне пример? – Fryslan