我正在使用Play框架。我有一个JSONObject,其结构如下(在打印的控制台中)
{
"rows_map":{
"220":["mahesh",
"outfit:bmtech,app:salesreport,uuname,ffname,llname",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5",
null
],
"221":["mahesh",
"outfit:bmtech,app:salesreport,uuname,ffname,llname",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5",
null
],
"222":["mahesh",
"outfit:bmtech,app:salesreport,uuname,ffname,llname",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5",
null
],
"223":["mahesh",
"outfit:bmtech,app:salesreport,uuname,ffname,llname",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5",
null
]
},
"columns_map":["Sender",
"Message Received",
"Device",
"Time"
]
}
我想将此JSONObject写入文件。这是代码
String path = "/var/www/html/Prj/public/CacheLayer/Incoming_Cache/CacheFileMgr.cache";
ObjectOutputStream outputStream = null;
try{
outputStream = new ObjectOutputStream(new FileOutputStream(path));
System.out.println("Start Writings");
outputStream.writeObject(object);
outputStream.flush();
outputStream.close();
}catch (Exception e){
System.err.println("Error: " + e);
}
以上内容未成功写入文件。发生序列化错误。
答案 0 :(得分:15)
在JSONObject上调用toString,然后序列化字符串。 JSONObject本身不可序列化。
String jsonString = jsonObject.toString();
答案 1 :(得分:7)
JSON是序列化,它不实现可序列化,只需将其转换为字符串并将字符串保存在文件中(作为文本)。