【问题标题】:Unable to save Modifies JSON无法保存修改 JSON
【发布时间】:2019-09-13 10:38:02
【问题描述】:

我保存在磁盘上的原始 JSON:R:\Desktop\alamo\dd

{
    "Name": "ABC.com",
    "Developer": "Ram Kumar",
    "Project List": [
        "Compnay: National",
        "Compnay: Enterprise",
        "Compnay: Alamo"
    ]
}

我删除特定子节点的代码:“Name

public static void main(String[] args) throws IOException {
        String locationPath = "R:\\Desktop\\alamo\\dd";
        for (File locFile : new File(locationPath).listFiles()){
            ObjectMapper mapper = new ObjectMapper();
            ObjectNode obj = (ObjectNode) mapper.readTree(locFile);

            JsonNode tree1 = mapper.readTree(locFile); //Parse Specific JSON from Rental
            if(obj.has("Name")){
                obj.remove("Name");
                }
            System.out.println(obj);
            /* if(tree1.has("Name"))
            {
                ((ObjectNode) tree1).remove("Name");
            }*/
        }
    }

控制台输出:{"Developer":"Ram Kumar","Project List":["Compnay: National","Compnay: Enterprise","Compnay: Alamo"]}

根据修改,控制台上的输出是正确的,但是当我看到我的 json 文件时,它仍然有 Name 子节点。 怎么回写?? 谢谢

【问题讨论】:

标签: json java-8 jackson


【解决方案1】:

您只需运行FileWriter 即可将删除的字符串再次写入文件中。

// If this output prints correct value then write value
System.out.println(obj);

FileWriter fw = new FileWriter(locationPath);
fw.write(obj.toString());
fw.close();

【讨论】:

  • 谢谢,但是如何保留Json的结构,我将所有子节点放在一行中。
  • 我将输出 JSON 作为单行:{"Developer":"Ram Kumar","Project List":["Compnay: National","Compnay: Enterprise","Compnay: Alamo"]},我想要原始结构。
  • @JokaLee fw.write(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj))
  • 你真棒+)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 2012-10-03
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
相关资源
最近更新 更多