如何将java序列化文件转换为json文件
我有一个java类已经序列化并存储为.ser格式文件,但我想将其转换为json文件(.json格式),这是因为序列化在以直接方式追加方面似乎效率低下,并且由于streamcorrupt错误进一步导致文件损坏。是否有一种可能的有效方法将此java序列化文件转换为json格式。您可以尝试使用Google协议缓冲区来替代java序列化和json 在我在下面主题中的回答中,概述了什么是GPB以及如何使用GPB,因此您可以检查一下,看看它是否适合您:如何将java序列化文件转换为json文件,java,json,serialization,Java,Json,Serialization,我有一个java类已经序列化并存储为.ser格式文件,但我想将其转换为json文件(.json格式),这是因为序列化在以直接方式追加方面似乎效率低下,并且由于streamcorrupt错误进一步导致文件损坏。是否有一种可能的有效方法将此java序列化文件转换为json格式。您可以尝试使用Google协议缓冲区来替代java序列化和json 在我在下面主题中的回答中,概述了什么是GPB以及如何使用GPB,因此您可以检查一下,看看它是否适合您: 您可以将.ser文件作为输入流读取,并使用键/值映射接
您可以将
.ser
文件作为输入流
读取,并使用键/值
映射接收到的对象,然后写入.json
文件
InputStream ins = new ObjectInputStream(new FileInputStream("c:\\student.ser"));
Student student = (Student) ins.readObject();
Gson gson = new Gson();
// convert java object to JSON format,
// and returned as JSON formatted string
String json = gson.toJson(student );
try {
//write converted json data to a file named "file.json"
FileWriter writer = new FileWriter("c:\\file.json");
writer.write(json);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
在Java中没有标准的实现方法,也没有银弹——有很多库可以实现这一点。我更喜欢杰克逊 您可以在这里看到JSON序列化/反序列化库的列表(对于java,而不仅仅是java) 这是因为序列化在以直接方式追加方面似乎效率低下
不确定JSON是否是您的答案。您能否与我们分享一些数据示例以及您对其进行的操作?如果我理解正确,首先您希望将数据序列化为文件,然后您希望将序列化数据转换为JSON,因为序列化效率低下?但是你已经完成了序列化,并为此付出了任何代价。手动映射对象属性听起来像是一项艰巨的工作。看看Jackson或Gson,它们提供了自动POJO JSON转换。没错,如果有很多字段,手动映射将很困难,因此更新了代码,以便从POJO自动转换为
JSON
。
ObjectMapper mapper = new ObjectMapper();
// object == ??? read from *.ser
String s = mapper.writeValueAsString(object);