How to send nested Jsonobject contains Jsonarray as request parameter for rest api?

你离开我真会死。 提交于 2019-12-11 02:25:08

问题


How to send this type of Jsonobject as request parameter to rest API in android

{
    "operation": "diagnostic",
    "action": "DiagnosticCreateOrders",
    "diag_order_id": " 0",

    "data": [{
        "diag_odetail_id": "0",
        "diag_odetail_deptid": "100008",
        "diag_odetail_drname": "Dr Naren"
    }, {
        "diag_odetail_id": "0",
        "diag_odetail_deptid": "100008",
        "diag_odetail_drname": "Dr Naren"
    }]
}

and my code is com.android.volley.RequestQueue queue = Volley.newRequestQueue(this);

    StringRequest strReq = new StringRequest(Request.Method.POST,
           "http://172.19.1.57/API/v1/app/", new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {

            Log.d("ADDING_ORDER", "sending Server:---> " + response.toString());

            try {
                //JSONObject obj = new JSONObject(response);
                JSONObject obj = new JSONObject(response);
                Log.d("ADDING_ORDER", "Server Code---> " + obj.getString("code"));


                String code = obj.getString("code");


                if (code.equalsIgnoreCase("200")) {
                    Toast.makeText(getApplicationContext(), "Orderred Sucessfully Inserted", Toast.LENGTH_LONG).show();
                }
                if (code.equalsIgnoreCase("202")) {
                    Toast.makeText(getApplicationContext(), "Order Already assigned", Toast.LENGTH_LONG).show();

                }


            } catch (JSONException e) {

            }


        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            // Log.e("LOGIN", "Registration Error: " + error.getMessage());
            Log.d("LOGIN", "Login Response: Error Code" + error.toString());

        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            // Posting parameters to login url
            Map<String, String> mParams = new HashMap<String, String>();
            RequestParams params = new RequestParams();
            //mParams.put("Content-Type", "application/json");

            mParams.put("operation","diagnostic");
            mParams.put("action","DiagnosticCreateOrders");
            mParams.put("diag_order_id","0") ;

            List<Map<String, String>> listOfMaps = new ArrayList<Map<String,String>>();
            Map<String,String>  user1 = new HashMap<String, String>();
            user1.put("diag_odetail_id","0");
            user1.put(  "diag_odetail_deptid","100008");
            user1.put(  "diag_odetail_drname","Dr Naren");

            listOfMaps.add(user1);
           Map<String,String> user2 = new HashMap<String, String>();
            user2.put("diag_odetail_id","0");
            user2.put(  "diag_odetail_deptid","100005");
            user2.put(  "diag_odetail_drname","Dr Naren");


            listOfMaps.add(user2);
            mParams.put("data", listOfMaps.toString());
            Log.d("ADDING_ORDER_PARAMETERS", "parametrs:---> " + mParams.toString());

            return mParams;


        }

    };
    queue.add(strReq);*/

I have used volley library , Requestparams and httpclient to send this request but i got this error...

{
    "status": {
        "type": "error",
        "code": "400",
        "disc": "Invalid JSON value found"
    },
    "request": "diag_city=Hyderabad&diag_order_type_e=1&diag_landmark=Road+Number+27%2C+Venkatagiri%2C+Jubilee+Hills%2C+Hyderabad%2C+Telangana+500033%2C+India&diag_patient_gender_e=1&diag_order_status_e=1&diag_delivery_state=Telangana&diag_address1=Road+Number+27&diag_address2=Venkatagiri&diag_address3=Jubilee+Hills&diag_patient_first_name=Srilaxmi&diag_contact_number=8768765432&action=DiagnosticCreateOrders&diag_patient_last_name=&diag_order_allstatus_e=1&diag_patient_mrn=203158&diag_delivery_locality=Hyderabad&diag_contact_mail=chpatient4%40gmail.com&diag_delivery_doorno=Road+Number+27&diag_cod=2&diag_patient_id=104170&diag_delivery_pincode=500033&source_type=Mobile+App&diag_handling_facility_id=100051&token=5b2d4293c67ac3c7cbbe8daf5e7a6882&diag_delivery_lat=17.439461299999998&diag_patient_age=34&diag_service_type_id=3&diag_order_facility_id=1&diag_business_source=3&diag_order_id=0&diag_delivery_lng=78.4079256&diag_country=India&operation=diagnostic&diag_country_code=91&diag_schedule_date=2016-02-23T20%3A45%3A00.000Z&diag_service_subtype_id=13&data=%5B%7B%22diag_odetail_id%22%3A%220%22%2C%22diag_odetail_deptid%22%3A%22100008%22%2C%22diag_odetail_drname%22%3A%22Dr+Naren%22%2C%22diag_odetail_facility_need%22%3A%220%22%2C%22diag_odetail_facilitation_require%22%3A%221%22%2C%22diag_odetail_gross_amount%22%3A%22250.000000%22%2C%22diag_odetail_net_amount%22%3A%22250.000000%22%2C%22diag_odetail_service_id%22%3A%22100989%22%2C%22diag_odetail_status_e%22%3A%221%22%2C%22diag_odetail_order_qty%22%3A%221%22%2C%22diag_odetail_patientid%22%3A%22104170%22%2C%22diag_odetail_prescribed%22%3A%221%22%2C%22diag_odetail_priority_e%22%3A%225%22%2C%22diag_odetail_schedule_date%22%3A%222016-02-23T20%3A45%3A00.000Z%22%2C%22diag_odetail_subdept_id%22%3A%22100008%22%2C%22diag_odetail_testid%22%3A%22100989%22%2C%22diag_odetail_testname%22%3A%22Complete+Blood+Count+%28CBC%29+-+Whole+Blood%22%2C%22diag_odetail_testprice%22%3A%22250.000000%22%2C%22diag_odetail_testtype_e%22%3A%222%22%2C%22diag_odetail_apostatus_e%22%3A%221%22%2C%22diag_odetail_order_guid%22%3A%22r1r2f3ffff4%22%7D%2C%7B%22diag_odetail_id%22%3A%220%22%2C%22diag_odetail_deptid%22%3A%22100005%22%2C%22diag_odetail_drname%22%3A%22Dr+Naren%22%2C%22diag_odetail_facility_need%22%3A%220%22%2C%22diag_odetail_facilitation_require%22%3A%221%22%2C%22diag_odetail_gross_amount%22%3A%22113.000000%22%2C%22diag_odetail_net_amount%22%3A%22113.000000%22%2C%22diag_odetail_service_id%22%3A%22101043%22%2C%22diag_odetail_status_e%22%3A%221%22%2C%22diag_odetail_order_qty%22%3A%221%22%2C%22diag_odetail_patientid%22%3A%22104170%22%2C%22diag_odetail_prescribed%22%3A%221%22%2C%22diag_odetail_priority_e%22%3A%225%22%2C%22diag_odetail_schedule_date%22%3A%222016-02-23T20%3A45%3A00.000Z%22%2C%22diag_odetail_subdept_id%22%3A%22100005%22%2C%22diag_odetail_testid%22%3A%22101043%22%2C%22diag_odetail_testname%22%3A%22Fasting+Blood+Glucose+%28FBS%29+-+Plasma%22%2C%22diag_odetail_testprice%22%3A%22113.000000%22%2C%22diag_odetail_testtype_e%22%3A%222%22%2C%22diag_odetail_apostatus_e%22%3A%221%22%2C%22diag_odetail_order_guid%22%3A%22r1r2f3ffff4%22%7D%5D"
}

Please help me how can I send ...


回答1:


finally, send the jsonParam object to your service

JSONArray jsonArray = new JSONArray();

JSONObject pnObj_reeferleft = new JSONObject();

pnObj_reeferleft.put("comments", reeferleft_cm);

pnObj_reeferleft.put("section", reeferleft_section);

pnObj_reeferleft.put("pictures", reeferleft);

jsonArray.put(pnObj_reeferleft);    

JSONObject jsonParam = new JSONObject();

jsonParam.put("hash", "somedata");

jsonParam.put("media", jsonArray);


来源:https://stackoverflow.com/questions/35773250/how-to-send-nested-jsonobject-contains-jsonarray-as-request-parameter-for-rest-a

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!