Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android上使用intent putExtra JsonObject?_Android_Android Intent_Android Json - Fatal编程技术网

如何在android上使用intent putExtra JsonObject?

如何在android上使用intent putExtra JsonObject?,android,android-intent,android-json,Android,Android Intent,Android Json,如何使用putExtra获取JsonObject?我想获取JSON文本以显示另一个活动 @Override protected String doInBackground(Void... v) { HashMap<String, String> params = new HashMap<>(); params.put(KEY_MEMBER_ID, memberId); params.put(KEY_PWD, pwd); JSONP

如何使用putExtra获取JsonObject?我想获取JSON文本以显示另一个活动

 @Override
 protected String doInBackground(Void... v) {

    HashMap<String, String> params = new HashMap<>();

    params.put(KEY_MEMBER_ID, memberId);
    params.put(KEY_PWD, pwd);

    JSONParser jParser = new JSONParser();

    JSONObject json = jParser.sendPostRequest(GlobalVariabel.URL_LOGIN_MEMBER, params);
    System.out.println("URL :######### "+GlobalVariabel.URL_LOGIN_MEMBER);

    try {
        status = json.getString("STATUS");

        System.out.println("STATUSSSSSSSSSSSSSSSSSS : " + status);
        System.out.println(json);

        JSONObject jObj = json.getJSONObject("PROFILE");
        if (jObj != null) {
            user_id = jObj.getString("USER_ID");
            profile_url = jObj.getString("PROFILE_URL");
            date_joined = jObj.getString("DATE_JOINED");
            phone_type = jObj.getString("PHONE_TYPE");
            email = jObj.getString("EMAIL");
            name = jObj.getString("NAME");
        }

        } catch (JSONException e) {
            e.printStackTrace();
        }
            return null;
        }
Intent intent = new Intent(getActivity(), MainActivity.class);
                    intent.putExtra(".... ", ....);
                    //intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intent);
就这样做吧

转到onPostExecute()方法

希望这对您有所帮助。:)

json实际上是一个具有确定格式的“字符串”文本

第一个选项:

我建议您将其传递给String,通过putExtra发送,然后将其重新映射到json对象:

Intent intent = new Intent(getActivity(), MainActivity.class);
                    intent.putExtra("JSON_OBJECT", json.toString());
                    //intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intent);
并通过以下方式检索:

String jsonObject = intent.getStringExtra("JSON_OBJECT");
MyJsonObject myjsonObject = (MyJsonObject)intent.getParcelableExtra("POJO_OBJECT", myJsonObject);
之后,您必须重新构建json对象

第二个选项

将jsonObject转换为实现Serializable或Parcelable的POJO对象,并通过以下方式发送:

intent.putExtra("POJO_OBJECT", myJsonObject);
并通过以下方式检索:

String jsonObject = intent.getStringExtra("JSON_OBJECT");
MyJsonObject myjsonObject = (MyJsonObject)intent.getParcelableExtra("POJO_OBJECT", myJsonObject);
试试这个 //将全局字符串标记为字符串JsonOutput=“”

在MainActivity.class//中,您要从中获取此详细信息

String Jsonoutput=getIntent().getExtras().getString("Your Key");
JSONObject job=new JSOObject(Jsonoutput);
//now parse this job to get your name and email.or anuy other data in jobj.
希望这有帮助。

用于发送json

Intent intent = new Intent(getActivity(), MainActivity.class);
                intent.putExtra("json", jsonObject.toString());
                startActivity(intent);
检索

       if(getIntent().hasExtra("json")) { 
       JsonObject mJsonObject = new JsonObject(getIntent().getStringExtra("json"));
    }

@Selvin我不了解jsonObject.toString()、jsonObject json或jObj?您希望在意向中发送的jsonObject。首先将其转换为字符串,然后发送到intent中,然后将其作为字符串检索回来,并将其放入jsonobject中,正如我提到的,对于大型json,它会变慢,对吗?在将所有json转换为字符串时
       if(getIntent().hasExtra("json")) { 
       JsonObject mJsonObject = new JsonObject(getIntent().getStringExtra("json"));
    }