将元素添加到外部JSON文件中的JSON对象?

时间:2013-12-25 19:58:08

标签: java javascript


(经过几个月的网上冲浪,与学校的计算部门交谈并尝试编写代码,我仍然无法做到这一点,但我确实知道我要做的更具体)


以前我说我想在现有的JSON文件中添加“添加行”。

我想要做的只是从文件中向JSON对象添加元素,然后保存文件。 但是我仍然对如何做到感到困惑。

我猜测的过程是使用ajax将文件内容(文件中的JSON代码)加载到变量中,然后将新元素添加到对象中,然后保存文件。

我看过很多代码,但都太混乱了,看起来就像网页一样。我试图在计算机上编辑一个文件作为一个程序,我认为网页相关的代码如xmlhttp请求是无关紧要的,因为该文件位于appdata的文件夹中。

我一直很困惑,认为Java和Javascript是一回事,我现在知道他们不是。

我会查找哪些代码或函数以及如何在代码中使用它?

(请不要发布伪代码,因为我不知道如何为它们编写代码,因为我完全不知道如何编写除html网页和一些php之外的任何代码。其他编码语言如Java,Javascript和Python我对单独编写程序知之甚少,但还不够。)

1 个答案:

答案 0 :(得分:1)

我认为最好使用其他人已编写的代码来操作JSON。有很多库,最好的是官方指定的库JSON-P。你要做的是:

  1. 转到http://jsonp.java.net/并下载JSON-P。 (您必须仔细检查页面以找到“JSON Processing RI jar”的链接。)在编写程序时,您需要在类路径中包含此JAR。

  2. javax.json.*

  3. 添加导入您的计划
  4. 编写此代码来完成工作(您必须抓住JsonExceptionIOException 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();