将更新的值替换并写入java中的嵌套json文件

时间:2017-10-14 16:37:58

标签: java json fileoutputstream

如何更新json文件中的值并替换文件本身中的值?我已经尝试了以下方式,它替换了值,但我无法在json文件中看到更新的值。提前谢谢。

final FileInputStream in = new FileInputStream(System.getProperty("user.dir") + "/" + PATH);
        final ObjectMapper mapper = new ObjectMapper();
        final JsonNode tmp = mapper.readTree(in);

    //replacing the value
    ObjectNode.class.cast(tmp).get("url").get(0).get("path").toString().replace(DEFAULT_ENDPOINT,configuration.getApiEndPoint());

    //write to the file
    byte[] contentAsByte = tmp.toString().getBytes();
    final FileOutputStream out = new FileOutputStream(System.getProperty("user.dir") + "/" + PATH);
    out.write(contentAsByte);
    out.flush();
    out.close();
    in.close();`

1 个答案:

答案 0 :(得分:0)

您使用的.replace()方法是来自String的方法,而不是来自JsonNode。

使用它来更改JsonNode:

    // replacing the value
    ObjectNode obj = ObjectNode.class.cast(tmp.get("url").get(0));
    obj.set("path", new TextNode("newValue"));