I am trying to serialize an ArrayList of JSONObjects. But I get the error:
05-07 01:04:24.130: WARN/System.err(913): java.io.NotSerializableException: org.json.JSONObject 05-07 01:04:24.130: WARN/System.err(913): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1535) 05-07 01:04:24.130: WARN/System.err(913): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847) 05-07 01:04:24.130: WARN/System.err(913): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689) 05-07 01:04:24.130: WARN/System.err(913): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653) 05-07 01:04:24.130: WARN/System.err(913): at java.util.ArrayList.writeObject(ArrayList.java:651) 05-07 01:04:24.130: WARN/System.err(913): at java.lang.reflect.Method.invokeNative(Native Method) 05-07 01:04:24.130: WARN/System.err(913): at java.lang.reflect.Method.invoke(Method.java:507) 05-07 01:04:24.130: WARN/System.err(913): at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1219) 05-07 01:04:24.130: WARN/System.err(913): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575) 05-07 01:04:24.130: WARN/System.err(913): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847) 05-07 01:04:24.130: WARN/System.err(913): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689) 05-07 01:04:24.130: WARN/System.err(913): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653) 05-07 01:04:24.130: WARN/System.err(913): at org.stocktwits.activity.AddStocksActivity.serializeQuotes(AddStocksActivity.java:183) 05-07 01:04:24.130: WARN/System.err(913): at org.stocktwits.activity.AddStocksActivity.access$9(AddStocksActivity.java:178) 05-07 01:04:24.130: WARN/System.err(913): at org.stocktwits.activity.AddStocksActivity$2.onItemClick(AddStocksActivity.java:146) 05-07 01:04:24.130: WARN/System.err(913): at android.widget.AdapterView.performItemClick(AdapterView.java:284) 05-07 01:04:24.130: WARN/System.err(913): at android.widget.ListView.performItemClick(ListView.java:3513) 05-07 01:04:24.130: WARN/System.err(913): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812) 05-07 01:04:24.130: WARN/System.err(913): at android.os.Handler.handleCallback(Handler.java:587) 05-07 01:04:24.130: WARN/System.err(913): at android.os.Handler.dispatchMessage(Handler.java:92) 05-07 01:04:24.130: WARN/System.err(913): at android.os.Looper.loop(Looper.java:130) 05-07 01:04:24.130: WARN/System.err(913): at android.app.ActivityThread.main(ActivityThread.java:3683) 05-07 01:04:24.130: WARN/System.err(913): at java.lang.reflect.Method.invokeNative(Native Method) 05-07 01:04:24.130: WARN/System.err(913): at java.lang.reflect.Method.invoke(Method.java:507) 05-07 01:04:24.130: WARN/System.err(913): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 05-07 01:04:24.130: WARN/System.err(913): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 05-07 01:04:24.130: WARN/System.err(913): at dalvik.system.NativeStart.main(Native Method)
Here is my serialize & deserialize code:
private void serializeQuotes() { FileOutputStream fos; try { fos = openFileOutput(Constants.FILENAME, Context.MODE_PRIVATE); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(quotes); oos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @SuppressWarnings("unchecked") private void deserializeQuotes() { try { FileInputStream fis = openFileInput(Constants.FILENAME); ObjectInputStream ois = new ObjectInputStream(fis); quotes = (ArrayList<JSONObject>) ois.readObject(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } }