首页 > 解决方案 > 如何在 JSON 而不是 MySQL 上加载数据?(转换代码)

问题描述

我的服务器从 MySQL 加载数据,这是不必要的。我想从本地 JSON 文件加载数据。我怎么能做到这一点?

这是从 MySQL 加载数据的方式:

 public static void loadShops() {
shops.clear();
Server.gameDb.executeAwait(new DatabaseStatement() {

    @Override
    public void execute(Connection connection) throws SQLException {
    PreparedStatement statement = null;
    ResultSet rs = null;

    try {
        statement = connection.prepareStatement("SELECT * FROM shops ORDER BY id");
        rs = statement.executeQuery();

        while (rs.next()) {
        int id = rs.getInt("id");
        String name = rs.getString("name");
        ShopType type = ShopType.get(rs.getString("type"));
        Currency currency = Currency.get(rs.getString("currency"));
        Gson gson = new Gson();
        JsonParser parser = new JsonParser();
        JsonObject object = (JsonObject) parser.parse(rs.getString("items"));
        ShopItem[] items = gson.fromJson(object.get("shop-items").getAsJsonArray(), ShopItem[].class);
        Shop shop = new Shop(name, id, type, currency, items);
        shops.put(id, shop);
        }
    } finally {
        DatabaseUtils.close(statement, rs);
    }
    }
});
}

我怎样才能使它从本地 .JSON 文件而不是 MySQL 加载?

谢谢大家 :D

编辑:我试图做这样的事情:

@Override
public void load(JsonObject rs, Gson builder) {
    int id = rs.get("id").getAsInt();
    String name = rs.get("name").getAsString();
    ShopType type = ShopType.get(rs.get("type").getAsString());
    Currency currency = Currency.get(rs.get("currency").getAsString());
    Gson gson = new Gson();
    JsonParser parser = new JsonParser();
    JsonObject object = (JsonObject) parser.parse(rs.get("items").getAsString());
    ShopItem[] items = gson.fromJson(object.get("shop-items").getAsJsonArray(), ShopItem[].class);
    Shop shop = new Shop(name, id, type, currency, items);
    getShops().put(id, shop);
        System.out.println(rs.toString());
}

标签: javamysql

解决方案


推荐阅读