Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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 objectMapper.readValue(文件)在读取时修改原始文件_Java_Json_Jackson_Objectmapper - Fatal编程技术网

Java Jackson objectMapper.readValue(文件)在读取时修改原始文件

Java Jackson objectMapper.readValue(文件)在读取时修改原始文件,java,json,jackson,objectmapper,Java,Json,Jackson,Objectmapper,似乎readValue()方法在读取后会修改文件。杰克逊版本2.9.8和版本2.9.10.3都会出现这种情况 这是我调用的将对象序列化为文件的方法,它可以完美地序列化 public void saveToFile() throws IOException { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.writerFor(Type.class).withDefaultPrettyPrin

似乎
readValue()
方法在读取后会修改文件。杰克逊版本2.9.8和版本2.9.10.3都会出现这种情况

这是我调用的将对象序列化为文件的方法,它可以完美地序列化

public void saveToFile() throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.writerFor(Type.class).withDefaultPrettyPrinter().writeValue(new File("C:\\Path\\To\\File.json"), object);
    }
当我反序列化时,我使用此调用:

public Type restoreFromFile() throws IOException { 
       ObjectMapper objectMapper = new ObjectMapper();        
       Type restoredObj = objectMapper.readValue(new File("C:\\Path\\To\\File.json"), Type.class);
    }
当调试器传递到下一条指令(只是一个for循环,它不会以任何方式接触文件,而是在
restoredObj
上迭代)时,我的
文件.json
会发生变化,就像类
类型
的另一个
Obj
在不遵循正常序列化使用的相同标记的情况下被序列化一样(它将一些值置于
null
,并且不使用
@JsonIdentityInfo
进行序列化)


请注意,
Obj
在我第一次调用
restore()时得到了正确的反序列化
方法,但如果我连续调用它两次,
Obj
将使用
null
值而不是正确的值进行反序列化。

目前很难帮助您。请发布您的代码-带有for循环的方法-可能更容易帮助。目前很难帮助您。请发布您的代码-t他使用for循环输入的方法,这可能更容易得到帮助。