2017-04-17 5 views
2

J'utilise la bibliothèque de volley pour les données post sur api ... ici le type de contenu est « application/json » ....comment analyser JSON en utilisant Volley

Comment puis-je mettre en œuvre ce type de JSON données:

URL: Base_URL + dorequisition 
{ 
    "submitted_by_employee_id": 1, 
    "name": "Technolive SF for TC", 
    "bags_thana_wise": [ 
       { 
       "tiger": "10000", 
       "extreme": "5000", 
       "opc": "3000", 
       "three_rings": "4000", 
       "buffalo_head": "2000", 
       }, 
      ], 

    "free_bag": "500", 
    "landing_price": "450", 
    "transport_cost_ex_factory_rate": "450", 
    "amount_taka": "four hundred fifty", 
    "bank_name": "IFIC Bank Limited", 
    "delivery_point": "Banani", 
    "upto_today": "450", 
    "bag_type": "swing", 
    "remark": "Good Cement", 
    "token": "2cbf1cefb6fe93673565ed2a0b2fd1a1" 
} 

api exemple de mise en œuvre:

public void APIRetailVisitInfo() { 

     for (int i = 0; i < retailVisitInfoList.size(); i++) { 
      System.out.println("token id:::" + token + " :::"+employee_id); 

      Map<String, String> jsonParams = new HashMap<String, String>(); 

      jsonParams.put("submitted_by_employee_id", employee_id); 
      jsonParams.put("retailer_name", retailVisitInfoList.get(i).getRetails_name()); 
      jsonParams.put("retailer_phone", retailVisitInfoList.get(i).getRetailer_contact_no()); 
      jsonParams.put("retailer_address", retailVisitInfoList.get(i).getRetails_address()); 
      jsonParams.put("remarks", retailVisitInfoList.get(i).getRemarks()); 
      jsonParams.put("token", token); 


      JsonObjectRequest myRequest = new JsonObjectRequest(
        Request.Method.POST, 
        "http://technolive.co/retailvisitinfo", 
        new JSONObject(jsonParams), 

        new Response.Listener<JSONObject>() { 
         @Override 
         public void onResponse(JSONObject response) { 


          try { 
           code = response.getString("code"); 
           //token = response.getString("token"); 
          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 


          if (code.equals("200")) { 

           System.out.println("APICompetetorBasedOnMArketPrice:::" + code + " :::"); 
          } 


          // System.out.println("token:::" + token+" :::");*/ 
          // verificationSuccess(response); 

          System.out.println("APICompetetorBasedOnMArketPrice:::" + response + " :::"); 

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

       @Override 
       public Map<String, String> getHeaders() throws AuthFailureError { 
        HashMap<String, String> headers = new HashMap<String, String>(); 

        String auth = token; 
        headers.put("Content-Type", "application/json; charset=utf-8"); 
        headers.put("User-agent", "My useragent"); 
//    headers.put("Authorization", auth); 
        return headers; 
       } 


      }; 

      RequestQueue requestQueue = Volley.newRequestQueue(RetailVisitInfoActivity.this); 
      requestQueue.add(myRequest); 
      // MyApplication.getInstance().addToRequestQueue(myRequest, "tag"); 

     } 
    } 

quelqu'un peut me aider ........ s'il vous plaît

+0

@ Tamzid Babu essayer à http://json2java.azurewebsites.net/ poster votre json là, il génèrera la structure de classe java equvivalent. –

Répondre

3

Il est Rath er simple. Commençons d'abord par bags_thana_wise. bags_thana_wise est un JSONArray. Il contient un objet. Alors créons l'objet.

JSONObject json1 = new JSONObject(); 
json1.put("tiger","10000"; 
json1.put("extreme","5000"; 

et ainsi on..Now mettre cet objet JSON dans un tableau

JSONArray jsonArray = new JSONArray(); 
jsonArray.put(json1); 

Maintenant, il suffit d'ajouter ce tableau et d'autres valeurs à un autre objet JSON

JSONObject finalObject = new JSONObject(); 
finalObject.put("submitted_by_employee_id","1"); 
finalObject.put("name","Technolive SF for TC"); 
//put the jsonArray 
finalObject.put("bags_thana_wise",jsonArray); 
finalObject.put("free_bag","500"); 
. 
. 
. 
finalObject.put("token","2cbf1cefb6fe93673565ed2a0b2fd1a1"); 

Maintenant, faites ce qui suit demande volley

JsonObjectRequest jsonReq = new JsonObjectRequest(Request.Method.POST, 
      myURL, null, new Response.Listener<JSONObject>() { 

     @Override 
     public void onResponse(JSONObject response) { 
      //Handle response 
     } 
    }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(PopupActivity.this,"Can not reach server",Toast.LENGTH_LONG).show(); 
     } 

    }){ 
     @Override 
     public String getBodyContentType(){ 
      return "application/json; charset=utf-8"; 
     } 

     @Override 
     public byte[] getBody() { 
      try { 
       return finalObject == null ? null: finalObject.getBytes("utf-8"); 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
       return null; 
      } 
     } 
    }; 

    RequestQueue requestQueue = Volley.newRequestQueue(RetailVisitInfoActivity.this); 
     requestQueue.add(jsonRequest); 
+1

merci beaucoup .... :-) –