2013-07-22 33 views
0

我收到了這個簡單的json響應,我無法輕鬆訪問該值。該反應是這個從鍵值json響應訪問字符串

{"email":"[email protected]"} 

,這樣做後json.toString()的。現在我試圖訪問電子郵件的價值,並不斷收到錯誤。我認爲這只是

json.getString("email") 

這也是在java中。

編輯: 這裏是我得到

07-22 06:45:11.524: E/AndroidRuntime(9977): FATAL EXCEPTION: AsyncTask #2 
07-22 06:45:11.524: E/AndroidRuntime(9977): java.lang.RuntimeException: An error occured while executing doInBackground() 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.os.AsyncTask$3.done(AsyncTask.java:299) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at java.lang.Thread.run(Thread.java:856) 
07-22 06:45:11.524: E/AndroidRuntime(9977): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4609) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:867) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.view.ViewGroup.invalidateChild(ViewGroup.java:4066) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.view.View.invalidate(View.java:10193) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.widget.TextView.invalidateRegion(TextView.java:4375) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.widget.TextView.invalidateCursor(TextView.java:4318) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.widget.TextView.spanChange(TextView.java:7172) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.widget.TextView$ChangeWatcher.onSpanAdded(TextView.java:8759) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.text.SpannableStringBuilder.sendSpanAdded(SpannableStringBuilder.java:979) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:688) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:588) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.text.Selection.setSelection(Selection.java:76) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.text.Selection.setSelection(Selection.java:87) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.text.method.ArrowKeyMovementMethod.initialize(ArrowKeyMovementMethod.java:302) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.widget.TextView.setText(TextView.java:3535) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.widget.TextView.setText(TextView.java:3405) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.widget.EditText.setText(EditText.java:80) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.widget.TextView.setText(TextView.java:3380) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at com.reflap.reflap.EditProfile$fillfields.doInBackground(EditProfile.java:61) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at com.reflap.reflap.EditProfile$fillfields.doInBackground(EditProfile.java:1) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at android.os.AsyncTask$2.call(AsyncTask.java:287) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
07-22 06:45:11.524: E/AndroidRuntime(9977):  ... 5 more 

我在後臺進程這樣的錯誤。

+0

你得到了什麼錯誤? – Harish

+0

我建議你發佈反序列化json的整個代碼,以及json文本(除非它真的只包含'{「email」:「[email protected]」}')。另外如果你有任何堆棧跟蹤,這將有所幫助。 – Mena

+0

json文本只是{「email」:「[email protected]」}就是這樣。 –

回答

2

我相信你的堆棧跟蹤並不是由解析JSON數據引起的,而是因爲你的AsyncTask引用了doInBackground方法中的UI(一些TextView)。

您通常會參考您的意見onPostExecute,可能通過WeakReference s。

+0

啊,是的,可能就是這樣。只需一秒鐘。 –

+0

謝謝你。是的,這是錯誤。 –

+0

@MichaelNana不客氣! – Mena