如何将JSON对象传递给新活动

时间:2012-08-31 11:01:39

标签: android json android-intent

我有一个应用程序,需要使用AsyncTask从URL下载JSON,并在onPostExecute()上使用putExtra方法将该JSON对象传递给下一个Activity,但我不断收到错误,其中显示“putExtra只能用于传递字符串而不是对象“?如何解决这个问题?

3 个答案:

答案 0 :(得分:26)

传递参数时执行此操作:

intent.putExtra("json", jsonobj.toString());

在你的新活动中解析它就像这样:

JSONObject obj = new JSONObject(getIntent().getStringExtra("json"));

答案 1 :(得分:1)

你应该通过putExtra传递一个可序列化或可分割的对象,因为JSONObject既不是可序列化的也不是parcelable对象,所以你不能通过putExtra传递它。

因此,您需要通过解析JSONObject来创建Parcelable或Serializable类,然后您可以使用putExtra方法来传递它。

另一个选项是从jsonOjbect传递JSON字符串。

答案 2 :(得分:1)

在您获取JSON数据的活动中,编写以下代码以发送到TAB活动

Intent i = new Intent(getApplicationContext(), Another_Activity.class);
                            i.putExtra("key", jsonObject.toString());
                            startActivity(i);

访问数据即JSON对象在选项卡Activity

中编写以下代码
   JSONObject jsonObject = new JSONObject(getIntent().getStringExtra("key"));
                    Toast.makeText(Another_Activity.this, ""+jsonObject.get("Your JSON VALUE"), Toast.LENGTH_SHORT).show();

您的JSON VALUE是数据中存在的字段。例如"业务ID" 1 这里的业务ID是JSON值,用你的

替换它
相关问题