2015-06-21 118 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是否適合您。您能否與我們分享一些數據的例子以及您對它的操作?

相關問題