Я разрабатываю небольшую игру скроллинга с использованием slick 2D lwjgl и нахожусь в текущей ошибке при произведении чего-то.Проблемы с литьем при конвертации
Кажется, что не признаю, что я использую json string как JsonArray.
ошибка и функция,
java.lang.ClassCastException: java.lang.String cannot be cast to org.json.simple.JSONArray
at world.World.load(World.java:35)
at game.Engine.initStatesList(Engine.java:64)
at org.newdawn.slick.state.StateBasedGame.init(StateBasedGame.java:164)
функция:
public static void load(String path) throws Exception
{
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader(path));
JSONObject jSonOBJ = (JSONObject)obj;
JSONArray layers = (JSONArray)jSonOBJ.get("layers");
int amount = layers.size();
for (int i = 0; i < amount; ++i)
{
JSONObject layer = (JSONObject) layers.get(i);
String type = (String)layer.get("name");
if (type.equals("solids"))
{
solids = parse((JSONArray)layer.get("data")); //error
}
else if (type.equals("spawns"))
{
//to-do
}
}
}
это просто разобрать, если JSON, моя карта, плитка является твердым или нет, но я застрял по этой небольшой ошибке в течение небольшого времени. строка кода solids = parse((JSONArray)layer.get("data"));
должна преобразовать его в JSONArray правильно?
По-прежнему возникают проблемы с этим, 'Image [] [] solid - это мой 2D-массив изображений. Я просто вызываю: 'solids =' then parsing, 'layerse (слой JSONArray) layer представляет собой JSONObject, содержащий один из индексов твердых тел' .get ("data") '.get, чтобы получить 2d-массив через ключевые «данные», найденные внутри объекта слоев по моему запросу JSON – SenjuXo
Можете ли вы предоставить свой текст JSON, пожалуйста? И попробовали ли вы пропустить листинг и вызывать 'solidids = layer.getJSONArray (« data »); – RPresle