how to get the data content from response body?

Oct 2, 2012 at 2:21 AM

Hi,

 

I made a OData batch request. I got the following response body in json format.

The data are in response body. But how can I get the data from the response body.

Is there any API I can use?

This must be a very common task, right?

 thanks

 

Ying

 

--ejjeeffe0

Content-Type: application/http Content-Length: 1345 content-transfer-encoding: binary HTTP/1.1 200 OK Content-Type: application/json;charset=utf-8 Content-Length: 1258

{"d":{"results":[

{"__metadata": {"uri":"http://xml1009.wdf.sap.corp:8000/sap/hba/apps/grcra-reuse/odata/grcra.xsodata/UnusedRoleResults('980')","type":"sap.hba.apps.grcra-reuse.odata.grcra.UnusedRoleResultsType"},"SAPClient":"980","AccessControlBusProc":"PR00","AccessControlBusProcDesc":"Procure to Pay","NumberOfRoles":"17"},

{"__metadata": {"uri":"http://xml1009.wdf.sap.corp:8000/sap/hba/apps/grcra-reuse/odata/grcra.xsodata/UnusedRoleResults('980')","type":"sap.hba.apps.grcra-reuse.odata.grcra.UnusedRoleResultsType"},"SAPClient":"980","AccessControlBusProc":"FI00","AccessControlBusProcDesc":"Finance","NumberOfRoles":"7"},{"__metadata": {"uri":"http://xml1009.wdf.sap.corp:8000/sap/hba/apps/grcra-reuse/odata/grcra.xsodata/UnusedRoleResults('980')","type":"sap.hba.apps.grcra-reuse.odata.grcra.UnusedRoleResultsType"},"SAPClient":"980","AccessControlBusProc":"PM00","AccessControlBusProcDesc":"Plant Maintenance","NumberOfRoles":"3"},

{"__metadata": {"uri":"http://xml1009.wdf.sap.corp:8000/sap/hba/apps/grcra-reuse/odata/grcra.xsodata/UnusedRoleResults('980')","type":"sap.hba.apps.grcra-reuse.odata.grcra.UnusedRoleResultsType"},"SAPClient":"980","AccessControlBusProc":"MM00","AccessControlBusProcDesc":"Materials Management","NumberOfRoles":"1"}]}}

--ejjeeffe0--

Oct 2, 2012 at 6:11 PM

Hi Zengy,

    When doing batch requests, datajs will have each response in the batch as an element of the __batchResponses array in the data parameter of the success callback funciton:

OData.request(batchRequest, 
    function (data, response) {
       batchResponses = data.__batchResponses;
       var i, len;
       for(i = 0, len = batchResponses.length; i < len; i++){
           var data = batchResponses[i].data;
           // do something interesting with this individual response data.
       }
    }, 
    function error (err) { 
       // do something with the error 
    } , 
    OData.batchHandler);

Regards,

Alex Trigo.