0
votes

Comment analyser JSON à l'aide de volley?

J'ai une sortie JSON comme celle-ci xxx

et i implémente à l'aide de Volley comme celle-ci xxx

mais ne fonctionne pas, aidez-vous merci beaucoup


1 commentaires

Vous ne recevez pas jsonarray n'importe où.


5 Réponses :


0
votes

Vous n'obtenez pas jsonarray n'importe où, votre objet de réponse a plusieurs jsonObject xxx


0 commentaires

-1
votes

Avant de le faire, je vous suggère de lire sur l'objet JSON TRAY et JSON. Ici la solution.

 HashMap<String, String> params = new HashMap<String, String>();
        params.put("your json parameter name", json parameter value);
//        params.put("device_id", deviceID);
        Log.d("response11", String.valueOf(params));

        String Url ="your server url";


JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, Url,
            new JSONObject(params), new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            Log.d(TAG + "JO", String.valueOf(response));

            try {
                String msgObject = response.getString("message");
                Log.d("response","msgObject");


            }catch (JSONException e){
                String jsonExp = e.getMessage();
                Log.d(TAG + "JE", jsonExp);
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            String volleyErr = error.getMessage();
            Log.d(TAG + "VE", volleyErr);
        }
    });
    requestQueue.add(jsonObjectRequest);


0 commentaires

0
votes

Vous pouvez utiliser un peu de lib pour volley (par exemple, volleyex ), avec GSON, pour analyser la Objet JSON à une carte en Java.

I.e. Utilisation de GSONOBITEQUEST au lieu de stringrequest

développeur.android.com a le code, mais là sont aussi des libs que cela pour vous.

Exemple ici


1 commentaires

Veuillez marquer ceci comme solution si vous pensez que c'est la chose que vous voulez.



0
votes

Utilisez http://jsonviewer.stack.hu/ [pour voir la structure de données JSON]

  • accolades {} c'est un jsonobject
  • Supports [] c'est un jsonarray XXX


0 commentaires

0
votes

Essayez ceci

StringRequest request = new StringRequest(Request.Method.POST, ApiService.ORDER_BATTERY, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                try{
                    BookBattery bookBattery = new BookBattery();
                    JSONObject jsonObject = new JSONObject(response);
                    String message = jsonObject.getString("message");
                    if (message.equalsIgnoreCase("success")) {
                        String battery = jsonObject.getString("battery");
                        JSONObject dataObject = jsonObject.getJSONObject("data");
                        JSONObject shopDataObject = jsonObject.getJSONObject("shopData");
                        int dataId = dataObject.getInt("id");
                        int dataUserId = dataObject.getInt("userId");
                        int dataShopId = dataObject.getInt("shopId");
                    } else {
                        Log.e("Your Array Response", "Data Null");
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("error is ", "" + error);
            }
        }) {

            //This is for Headers If You Needed
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> params = new HashMap<String, String>();
                params.put("Content-Type", "application/json; charset=UTF-8");
                params.put("token", TokenUser);
                return params;
            }

            //Pass Your Parameters here
            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                params.put("shopId", String.valueOf(shopId));
                //params.put("Pass", PassWord);
                return params;
            }
        };

        AppController.getInstance().addToRequestQueue(request, tag_json_obj);


0 commentaires