Строка в jsonObject - PullRequest
       7

Строка в jsonObject

0 голосов
/ 25 мая 2018

В приведенном ниже коде я хочу использовать Response, но он выдает JSONException

        StringRequest strReq = new StringRequest(Request.Method.POST, REGISTER_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    Log.v(TAG, "Response: " + response);//output {"error":false}

                    try {
                        JSONObject jo = new JSONObject(response); // java.lang.String cannot be converted to JSONObject
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });

Пример строки JSON:

{
    "error": false,
    "uid": "5b081af13eb974.69226352",
    "user": {
        "name": "66699",
        "created_at": "2018-05-25 18:47:21"
    }
}

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 25 мая 2018

Что ж, для извлечения содержимого вашего response вам не нужно использовать JSON при использовании запроса POST.Вместо этого сделайте что-то вроде этого:

if (response.equalsIgnoreCase("yourResponseFromTheWebService")) {

    ...
    Toast
} else if (response.equalsIgnoreCase("OtherPossibleResponse")){

    ....
    Toast

} else{

    ....
    Toast      
}

в случае запроса GET вы должны сделать что-то вроде этого:

JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, URL, null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        // display response

                        try {

                            //put response into string
                            JSONArray Jresult = response.getJSONArray("user");


                            for (int i = 0; i < Jresult.length(); i++) {
                                JSONObject json_data = Jresult.getJSONObject(i);
                                String lName = json_data.getString("name");
                                String lCreatedAt = json_data.getString("created_at");

//create a model class with your user info like name and created_at and for every user found create a new user object and store its info.
                                _myUser.add(new User(lName, lCreatedAt));
                            }


                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                        Log.d("Response", response.toString());
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.d("Error.Response", error.toString());
                    }
                }
        );

        RequestQueue queue = Volley.newRequestQueue(this);
        queue.add(getRequest);
...