这是我需要导入JAVA变量的JSON数据
{"world":{" - 61,66":"1"," - 62,66":"2"}}
我已经尝试过标准教程,但是它们都需要一个格式化的JSON文件,作者可以在其中控制.在这种情况下,我不是.为了打破这一点,它是针对名为FactionsUUID的Minecraft插件,它将玩家声称他们的阵营的地图块存储到x和z的网格数字块中,因此"-61,66"将它们对齐到"x,z"和"1" "和"2"与另一个JSON文件中的Faction ID引用对齐,该文件现在不需要交叉索引.我只需要能够在我的代码中通过Faction ID分隔声明.
世界是一个对象,但我无法得到下面的项目来解析成一个数组.
{
"world": {
"-61,66": "1",
"-62,66": "2"
}
}
Run Code Online (Sandbox Code Playgroud)
(来自以下错误的第59行)JSONArray theworld =(JSONArray)jsonObject.get("world");
@SuppressWarnings("unchecked")
public static void main() {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader(
"C:\\TestServer\\jar\\plugins\\Factions\\board.json"));
JSONObject jsonObject = (JSONObject) obj;
(LINE 59 from Error below)
JSONArray theworld = (JSONArray) jsonObject.get("world");
Iterator<String> iterator = theworld.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
Main.logToFile("FTOP-> " + iterator.next());
}
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
[14:51:16警告]:java.lang.ClassCastException:org.json.simple.JSONObject无法强制转换为org.json.simple.JSONArray [14:51:16 WARN]:at com.ljd.perditionfcore.events .FTOPScan.main(FTOPScan.java:59)[14:51:16警告]:at com.ljd.perditionfcore.Main.onEnable(Main.java:35)[14:51:16 WARN]:at org.bukkit .plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)[14:51:16 WARN]:at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332)[14:51:16 WARN ]:at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404)[14:51:16 WARN]:at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:313)[14: 51:16 WARN]:org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:272)[14:51:16 WARN]:at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java :726)[14:51:16警告]:在org.bukkit.Bukkit.reload(Bukkit.java:556)[14:51:16警告]:at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand的.java:25)[14:51:16警告]:在org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:143)[14:51:16警告]:at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer. java:619)[14:51:16警告]:at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:582)[14:51:16 WARN]:at net.minecraft.server.v1_8_R3. DedicatedServer.aO(DedicatedServer.java:416)[14:51:16警告]:在net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:379)[14:51:16警告]:在网上. minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:715)[14:51:16 WARN]:at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:618)[14:51:16警告]:在java.lang.Thread.run(未知来源)
小智 5
jsonObject.get("world")返回一个object({ "-61,66": "1", "-62,66": "2" }),因此您可能希望迭代生成的对象的键集:
Map<String, String> map = new HashMap<String, String>();
map.put("-61,66", "1");
map.put("-62,66", "2");
JSONObject obj = new JSONObject(); // obj = {"world":{"-61,66":"1","-62,66":"2"}}
obj.put("world", new JSONObject(map));
JSONObject worldObject = obj.getJSONObject("world");
Set<String> keySet = worldObject.keySet(); // keySet = [-61,66, -62,66]
System.out.println(worldObject.keySet());
for (String key : keySet) {
System.out.println(worldObject.get(key)); // returns 1 and then 2
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |