使用 org.json.simple 从 Tiled 生成的 JSON 文件加载数据
Load data from JSON file generated by Tiled using org.json.simple
这里是新手...
我需要分别处理此 JSON 文件中的以下两个 "data" 数组,以便将它们保存在不同的 int 数组中:
{
//other stuff ...
"layers":[
{"data":[1, 1, 1, 1, 5, 1, 1, 1...],
//other stuff ...
},
{"data":[1, 1, 1, 1, 5, 1, 1, 1...],
//other stuff...
}
],
//other stuff...
}
这就是我目前的代码:
@SuppressWarnings("unchecked")
private void loadJsonData() {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader(path));
String jsonStr = obj.toString();
JSONObject json = (JSONObject) JSONValue.parse(jsonStr);
//other code...
mapTiles = ...;
objectTiles = ...;
} catch (ParseException ex) {
ex.printStackTrace();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} catch (ClassCastException ex) {
ex.printStackTrace();
}
}
我确定答案就在某处,但我太无能找不到它:D
有大量资源,json org 库易于使用。
您可以在此处找到更多 EXAMPLES
JSONParser parser = new JSONParser();
Object parsedObject = parser.parse(jsonStr);
JSONObject jsonObject = (JSONObject) parsedObject;
JSONArray layers = (JSONArray) jsonObject.get("layers");
JSONObject data = (JSONObject) layers.get(0);
JSONArray mapData = (JSONArray) data.get("data");
int[] mapTile = new int[mapData.size()];
for (int i = 0; i < mapData.size(); i++) {
mapTile[i] = ((Long)mapData.get(i)).intValue();
}
data = (JSONObject) layers.get(1);
JSONArray objectData = (JSONArray) data.get("data");
int[] objectTile = new int[objectData.size()];
for (int i = 0; i < objectData.size(); i++) {
objectTile[i] = ((Long)objectData.get(i)).intValue();
}
System.out.println(Arrays.toString(mapTile));
System.out.println(Arrays.toString(objectTile));
这里是新手... 我需要分别处理此 JSON 文件中的以下两个 "data" 数组,以便将它们保存在不同的 int 数组中:
{
//other stuff ...
"layers":[
{"data":[1, 1, 1, 1, 5, 1, 1, 1...],
//other stuff ...
},
{"data":[1, 1, 1, 1, 5, 1, 1, 1...],
//other stuff...
}
],
//other stuff...
}
这就是我目前的代码:
@SuppressWarnings("unchecked")
private void loadJsonData() {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader(path));
String jsonStr = obj.toString();
JSONObject json = (JSONObject) JSONValue.parse(jsonStr);
//other code...
mapTiles = ...;
objectTiles = ...;
} catch (ParseException ex) {
ex.printStackTrace();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} catch (ClassCastException ex) {
ex.printStackTrace();
}
}
我确定答案就在某处,但我太无能找不到它:D
有大量资源,json org 库易于使用。
您可以在此处找到更多 EXAMPLES
JSONParser parser = new JSONParser();
Object parsedObject = parser.parse(jsonStr);
JSONObject jsonObject = (JSONObject) parsedObject;
JSONArray layers = (JSONArray) jsonObject.get("layers");
JSONObject data = (JSONObject) layers.get(0);
JSONArray mapData = (JSONArray) data.get("data");
int[] mapTile = new int[mapData.size()];
for (int i = 0; i < mapData.size(); i++) {
mapTile[i] = ((Long)mapData.get(i)).intValue();
}
data = (JSONObject) layers.get(1);
JSONArray objectData = (JSONArray) data.get("data");
int[] objectTile = new int[objectData.size()];
for (int i = 0; i < objectData.size(); i++) {
objectTile[i] = ((Long)objectData.get(i)).intValue();
}
System.out.println(Arrays.toString(mapTile));
System.out.println(Arrays.toString(objectTile));