Java LibGDX 如何解析 JSON?

标签 java android json libgdx

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

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

如何解析成武器数组?我已经将此文件的内容作为字符串获取。然后我使用 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);
}

关于Java LibGDX 如何解析 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28266823/

相关文章:

android - Material 按钮上的圆角

c# - 将匿名类型反序列化为动态类型

java - Spring MVC 将对象绑定(bind)解释为字符串

java - 动态表数据检索 - selenium webdriver

java - 从 JAVA 应用服务器捕获 https 流量

android - Android、AES-GCM 或纯 AES 上的数据加密?

java - 更新 Set 中的对象

android - 安卓蓝牙的吞吐量行为

java - jackson ·塞/德塞 : Proxying an object to/from an id w/a different key

java - 如何将 Java 字符串转换为 JSON 对象