Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jackson-Json文件中的更新对象_Java_Json_Jackson - Fatal编程技术网

Java Jackson-Json文件中的更新对象

Java Jackson-Json文件中的更新对象,java,json,jackson,Java,Json,Jackson,我正在使用Jackson将POJO写入Json文件 稍后,我需要更新对象中的一个属性并更新Json。一种方法是重新创建整个json文件,但在我的例子中,我有一个对象列表,需要从中更改单个对象 有没有一个简单的方法可以做到这一点 //Writing to json file try { mapper.writerWithDefaultPrettyPrinter().writeValue(file, pipelinesFromFile); } catc

我正在使用Jackson将POJO写入Json文件

稍后,我需要更新对象中的一个属性并更新Json。一种方法是重新创建整个json文件,但在我的例子中,我有一个对象列表,需要从中更改单个对象

有没有一个简单的方法可以做到这一点

//Writing to json file
try {
            mapper.writerWithDefaultPrettyPrinter().writeValue(file, pipelinesFromFile);
            } catch (JsonGenerationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (JsonMappingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }



//Reading back again
Pipeline[] pipelinesFromFile = null;
            try {
                pipelinesFromFile = mapper.readValue(file, Pipeline[].class);
            } catch (JsonParseException e) {
                e.printStackTrace();
                pipelinesFromFile = new Pipeline[0];
            } catch (JsonMappingException e) {
                e.printStackTrace();
                pipelinesFromFile = new Pipeline[0];
            } catch (IOException e) {
                e.printStackTrace();
                pipelinesFromFile = new Pipeline[0];
            }

//Making changes to one of the object
pipelinesFromFile[0].someProp = "updated value"

现在,下一步是什么?

是否有正在修改的对象的缓存副本?如果是这样的话,你可以考虑修改数据,然后再把它写回去,我需要在GET请求中修改它,所以我想每次都需要读取文件,获取对象并更新和保存。而且,如果可能的话,我正在寻找一些方法,在每次修改之后,不重写整个JSON文件。