我有一个内容如下的json文件:

{
players: [
    {
        name: "",
        hp: 100
    },
    {
        name: "",
        hp: 120
    }
],
weapons: [
    {
        name: "Desert Eagle",
        price: 100
    },
    {
        name: "AK-47",
        price: 150
    }
]
}

如何将其解析为一系列武器?我已经以String形式获取此文件的内容。然后我使用libgdx JsonReader:
JsonValue json = new JsonReader().parse(text);

我也有武器课:
class Weapon {
    private String name;
    private int price;
}

接下来我该怎么做才能将所有武器组合在一起?

最佳答案

libGDX中没有自动将解析的Json映射到Java对象的映射,因此您必须遍历Json并自己创建适当的对象。对于示例,这就是您解析weapons的方式:

JsonValue json = new JsonReader().parse(text);
Array<Weapon> weapons = new Array<Weapon>();
JsonValue weaponsJson = json.get("weapons");
for (JsonValue weaponJson : weaponsJson.iterator()) // iterator() returns a list of children
{
    Weapon newWeapon = new Weapon();
    newWeapon.name = weaponJson.getString("name");
    newWeapon.price = weaponJson.getInt("price");
    weapons.add(newWeapon);
}

08-18 18:56