0

我有 WebAPI:http://some.com:39760/odata/ DriverInfoes

当我点击链接时它显示如下

{
  "odata.metadata":"http://some.com:39760/odata/$metadata#DriverInfoes","value":[
    {
      "DriverID":"1","Name":"Faria","Phone":"ss","Email":"ss","Time":null
    }
  ]
}

在 android 中,我添加了 odata4j-0.7.0-clientbundle 来使用 Odata

private class DownloadWebPageTask extends AsyncTask<Void, Void, OEntity> {
    protected OEntity doInBackground(Void... params) {

        String serviceUrl = "http://some.com:39760/odata/DriverInfoes ";
        ODataConsumer consumer = ODataConsumers.create(serviceUrl);

        return (OEntity) consumer.getEntities("DriverInfoes").execute(); //getting exception here
    }

    @Override
    protected void onPostExecute(OEntity consumer) {
        Log.v("mango", consumer.getType().getFullyQualifiedTypeName());
    }

}

我得到了例外

return (OEntity) consumer.getEntities("DriverInfoes").execute();

在我的 oncreate 方法中我写了

DownloadWebPageTask task = new DownloadWebPageTask();
task.execute();

但我没有任何运气。我想我做错了什么!有人能指点我吗?

4

1 回答 1

1

它的 JSON 数据...尝试使用 JSONObject 和 JSONArray 解析...

您的数据。

{
    "odata.metadata": "http://some.com:39760/odata/$metadata#DriverInfoes",
    "value": [
        {
            "DriverID": "1",
            "Name": "Faria",
            "Phone": "ss",
            "Email": "ss",
            "Time": null
        }
    ]
}

使用以下代码解析您的数据...

JSONObject JObj=new JSONObject (jsonresult);
String metadata= JObj.getString("odata.metadata");

JSONArray array_list = JObj.getJSONArray("value");

//getting order Id from **order_list array**
for(int i=0;i<array_list.length();i++)
{
         String DriverID= array_list.getJSONObject(i).getString("DriverID");
         String Name= array_list.getJSONObject(i).getString("Name");
         String Phone= array_list.getJSONObject(i).getString("Phone");
         String Email= array_list.getJSONObject(i).getString("Email");
         String Time= array_list.getJSONObject(i).getString("Time");
}
于 2014-09-13T06:55:31.193 回答