2016-08-03 115 views
-1

我可以使用以下類從服務器獲取數據。我可以通過這樣的jsonobject嗎?

public class ProductDetail implements Serializable 
{ 

    private static final long serialVersionUID = 1L; 
    private String name; 
    private String description; 
    public JSONObject configOptions = null; 
} 

On putting a check on this: 
if (isUserLoggedIn()) { 
    performClick(); 
} 

如果用戶沒有登錄,該方法會直接將用戶重定向到登錄頁面,否則會執行點擊操作。但它去登錄和這個錯誤來了:

java.lang.RuntimeException: Parcelable encountered IOException writing serializable object 
                     at android.os.Parcel.writeSerializable(Parcel.java:1388) 
                     at android.os.Parcel.writeValue(Parcel.java:1335) 
                     at android.os.Parcel.writeArrayMapInternal(Parcel.java:638) 
                     at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313) 
                     at android.os.Bundle.writeToParcel(Bundle.java:1096) 
                     at android.os.Parcel.writeBundle(Parcel.java:663) 
                     at android.support.v4.app.FragmentState.writeToParcel(Fragment.java:138) 
                     at android.os.Parcel.writeTypedArray(Parcel.java:1191) 
                     at android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:385) 
                     at android.os.Parcel.writeParcelable(Parcel.java:1357) 
                     at android.os.Parcel.writeValue(Parcel.java:1262) 
                     at android.os.Parcel.writeArrayMapInternal(Parcel.java:638) 
                     at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313) 
                     at android.os.Bundle.writeToParcel(Bundle.java:1096) 
                     at android.os.Parcel.writeBundle(Parcel.java:663) 
                     at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:2975) 
                     at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3497) 
                     at android.os.Handler.handleCallback(Handler.java:815) 
                     at android.os.Handler.dispatchMessage(Handler.java:104) 
                     at android.os.Looper.loop(Looper.java:194) 
                     at android.app.ActivityThread.main(ActivityThread.java:5576) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at java.lang.reflect.Method.invoke(Method.java:372) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751) 



Caused by: java.io.NotSerializableException: org.json.JSONObject 
                     at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344) 
                     at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651) 
                     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497) 
                     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461) 
                     at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:959) 
                     at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360) 
                     at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1054) 
                     at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384) 
                     at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651) 
                     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497) 
                     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461) 
                     at android.os.Parcel.writeSerializable(Parcel.java:1383) 
                     at android.os.Parcel.writeValue(Parcel.java:1335)  
                     at android.os.Parcel.writeArrayMapInternal(Parcel.java:638)  
                     at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313)  
                     at android.os.Bundle.writeToParcel(Bundle.java:1096)  
                     at android.os.Parcel.writeBundle(Parcel.java:663)  
                     at android.support.v4.app.FragmentState.writeToParcel(Fragment.java:138)  
                     at android.os.Parcel.writeTypedArray(Parcel.java:1191)  
                     at android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:385)  
                     at android.os.Parcel.writeParcelable(Parcel.java:1357)  
                     at android.os.Parcel.writeValue(Parcel.java:1262)  
                     at android.os.Parcel.writeArrayMapInternal(Parcel.java:638)  
                     at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1313)  
                     at android.os.Bundle.writeToParcel(Bundle.java:1096)  
                     at android.os.Parcel.writeBundle(Parcel.java:663)  
                     at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:2975)  
                     at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3497)  
                     at android.os.Handler.handleCallback(Handler.java:815)  
                     at android.os.Handler.dispatchMessage(Handler.java:104)  
                     at android.os.Looper.loop(Looper.java:194)  
                     at android.app.ActivityThread.main(ActivityThread.java:5576)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at java.lang.reflect.Method.invoke(Method.java:372) 
+0

'java.io.NotSerializableException:org.json.JSONObject'你認爲這可能意味着什麼? – njzk2

回答

0

看來ConfigOptions(JsonObject)是不可序列化的。您可以將JsonObject轉換爲String並嘗試序列化它。