如何将java序列化文件转换为json文件

如何将java序列化文件转换为json文件,java,json,serialization,Java,Json,Serialization,我有一个java类已经序列化并存储为.ser格式文件,但我想将其转换为json文件(.json格式),这是因为序列化在以直接方式追加方面似乎效率低下,并且由于streamcorrupt错误进一步导致文件损坏。是否有一种可能的有效方法将此java序列化文件转换为json格式。您可以尝试使用Google协议缓冲区来替代java序列化和json 在我在下面主题中的回答中,概述了什么是GPB以及如何使用GPB,因此您可以检查一下,看看它是否适合您: 您可以将.ser文件作为输入流读取,并使用键/值映射接

我有一个java类已经序列化并存储为.ser格式文件,但我想将其转换为json文件(.json格式),这是因为序列化在以直接方式追加方面似乎效率低下,并且由于streamcorrupt错误进一步导致文件损坏。是否有一种可能的有效方法将此java序列化文件转换为json格式。

您可以尝试使用Google协议缓冲区来替代java序列化和json

在我在下面主题中的回答中,概述了什么是GPB以及如何使用GPB,因此您可以检查一下,看看它是否适合您:


您可以将
.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);