小弟最近改造用户登陆模块,因为涉及到集群的部署,所以session中的对象都要是可序列化的,然后其中有一段特别不解,而且一直报错:代码如下:
List menuList = (List) JSONArray.toList(JSONArray.fromObject(menuJson),HashMap.class)
其中menuJson为json字符串,单元测试代码:如下
ObjectOutputStream objectOutputStream2 = new ObjectOutputStream(
new FileOutputStream(new File("D:\\testFile1.txt")));
objectOutputStream2.writeObject(menuList);
objectOutputStream2.flush();
objectOutputStream2.close();
ObjectInputStream objectInputStream2 = new ObjectInputStream(
new FileInputStream(new File("D:\\testFile1.txt")));
List sn2 = (List) objectInputStream2.readObject();
objectOutputStream2.close();
System.out.println("sn2------------------------------------"+sn2.size());
报错如下:
java.io.NotSerializableException: net.sf.json.JSONObject
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at java.util.HashMap.writeObject(HashMap.java:1001)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
求解啊