【发布时间】:2019-02-07 20:52:30
【问题描述】:
这是我需要导入到我的 JAVA 变量中的 JSON 数据
{
"world": {
"-61,66": "1",
"-62,66": "2"
}
}
我已经尝试过标准教程,但是它们都需要作者可以控制的格式化 JSON 文件。在这种情况下,我不是。 为了打破这一点,它是用于名为 FactionsUUID 的 Minecraft 插件,它将玩家为其派系声称的地图块存储到 x 和 z 的网格编号块中,因此它们与“x,z”和“1”对齐的“-61,66” " 和 "2" 与另一个 JSON 文件中的 Faction ID 引用对齐,该文件现在不需要交叉索引。我只需要能够在我的代码中通过 Faction ID 来分隔声明。
世界是一个对象,但我无法将以下项目解析为数组。
@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();
}
}
[14:51:16 WARN]: java.lang.ClassCastException: org.json.simple.JSONObject cannot be cast to org.json.simple.JSONArray
[14:51:16 WARN]: at com.ljd.perditionfcore.events.FTOPScan.main(FTOPScan.java:59)
[14:51:16 WARN]: 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]: at 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 WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:556)
[14:51:16 WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25)
[14:51:16 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:143)
[14:51:16 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:619)
[14:51:16 WARN]: 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 WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:379)
[14:51:16 WARN]: at net.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 WARN]: at java.lang.Thread.run(Unknown Source)
【问题讨论】:
-
您的 JSON 中没有数组,因此您无法将其转换为一个。 (
{...}表示对象,[...]表示数组)。