我的服务器不必要地从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());
}