(经过几个月的网上冲浪,与学校的计算部门交谈并尝试编写代码,我仍然无法做到这一点,但我确实知道我要做的更具体)
以前我说我想在现有的JSON文件中添加“添加行”。
我想要做的只是从文件中向JSON对象添加元素,然后保存文件。 但是我仍然对如何做到感到困惑。
我猜测的过程是使用ajax将文件内容(文件中的JSON代码)加载到变量中,然后将新元素添加到对象中,然后保存文件。
我看过很多代码,但都太混乱了,看起来就像网页一样。我试图在计算机上编辑一个文件作为一个程序,我认为网页相关的代码如xmlhttp请求是无关紧要的,因为该文件位于appdata的文件夹中。
我一直很困惑,认为Java和Javascript是一回事,我现在知道他们不是。
我会查找哪些代码或函数以及如何在代码中使用它?
(请不要发布伪代码,因为我不知道如何为它们编写代码,因为我完全不知道如何编写除html网页和一些php之外的任何代码。其他编码语言如Java,Javascript和Python我对单独编写程序知之甚少,但还不够。)
答案 0 :(得分:1)
我认为最好使用其他人已编写的代码来操作JSON。有很多库,最好的是官方指定的库JSON-P。你要做的是:
转到http://jsonp.java.net/并下载JSON-P。 (您必须仔细检查页面以找到“JSON Processing RI jar”的链接。)在编写程序时,您需要在类路径中包含此JAR。
为javax.json.*
。
编写此代码来完成工作(您必须抓住JsonException
和IOException
s):
JsonReader reader = Json.createReader(new FileReader("launcher_profiles.json"));
JsonObject file = reader.readObject();
reader.close();
JsonObject profiles = file.getJsonObject("profiles");
JsonObject newProfile = Json.createObjectBuilder()
.add("name", "New Lines")
.add("gameDir", "New Lines")
.add("lastVersionId", "New Lines")
.add("playerUUID", "")
.build();
JsonObjectBuilder objectBuilder = Json.createObjectBuilder()
.add("New Profile Name", newProfile);
for (java.util.Map.Entry<String, JsonValue> entry : profiles.entrySet())
objectBuilder.add(entry.getKey(), entry.getValue());
JsonObject newProfiles = objectBuilder.build();
// Now, figure out what I have done so far and write the rest of the code yourself! At the end, use this code to write out the new file:
JsonWriter writer = Json.createWriter(new FileWriter("launcher_profiles.json"));
writer.writeObject(newFile);
writer.close();