2015-06-21 73 views
0

我有一个java类已经序列化并存储为.ser格式文件,但是我想要将此转换为json文件(.json格式),这是因为序列化似乎是在直接附加方面效率低下,并进一步导致文件因流量错误造成的腐败。有没有一种有效的方法可以将这个java序列化文件转换为json格式。如何将java序列化文件转换为json文件

+0

如果我正确理解你,首先你想序列化数据到文件,然后你想将序列化数据转换成JSON,因为序列化效率低下?但是你已经做过系列化并且以这种方式支付了任何价格。 – John

回答

1

您可以阅读.ser文件作为InputStream和地图使用Gson和写入.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(); 
      } 
+0

手动映射对象属性听起来像很多工作。看看杰克逊或Gson提供的自动POJO <-> JSON转换。 – dnault

+0

正确的手动映射对于很多字段很困难,所以更新了从POJO到'JSON'的自动转换代码。 – Arpit

1

key/value收到的目标还有就是要做到这一点在Java中没有标准的方法也没有银弹 - 有很多这样的图书馆。我喜欢杰克逊https://github.com/FasterXML/jackson

ObjectMapper mapper = new ObjectMapper(); 
// object == ??? read from *.ser 
String s = mapper.writeValueAsString(object); 

你可以看到库的列表JSON序列化/反序列化(Java和不仅对JAVA)这里http://json.org/

这是因为序列化似乎是在条款低效以直接方式追加

不确定JSON是否适合您。您能否与我们分享一些数据的例子以及您对它的操作?

相关问题