2014-01-16 3 views
0
 01-16 08:16:19.210: W/System.err(1394): org.json.JSONException: Value 

    {"GetDoctorsListResult":[ 
    {"Name":"Sujay Sharma","DoctorID":154,"Clinics":null,"speciality":"Allergy and immunology","Locality":"Mumbai","Address":"Abcc Building "} 
     ,{"Name":"Samir Tapiawala","DoctorID":159,"Clinics":null,"speciality":"Homeopath","Locality":"Mumbai","Address":"57\/101, Jawahar Nagar RD. NO. 6, GOREGAON WEST "} 
     ,{"Name":"Sahil Kuma","DoctorID":171,"Clinics":null,"speciality":"Aerospace Medicine","Locality":"Mumbai","Address":"Digvija "} 
     ,{"Name":"Himesh Jagtap","DoctorID":180,"Clinics":null,"speciality":"Bariatric Surgery","Locality":"Mumbai","Address":"Abc- Society "} 
     ,{"Name":"Aarnav Prabhudesai","DoctorID":190,"Clinics":null,"speciality":"Dentistry","Locality":"Mumbai","Address":"Joyvilla Jawahar Nagar "} 
     ,{"Name":"Neeharika Saxana","DoctorID":197,"Clinics":null,"speciality":"Gynaecologist","Locality":"Mumbai","Address":"Joyvilla, Jawahar Nagar "} 
     ,{"Name":"Neeharika Saxena","DoctorID":205,"Clinics":null,"speciality":"Gynaecologist","Locality":"Mumbai","Address":"Joyvilla "} 
     ,{"Name":"Ravi Sharma","DoctorID":207,"Clinics":null,"speciality":"Ayurvedacharya","Locality":"Mumbai","Address":"Q\/02 "} 
     ,{"Name":"Prashant Bhatt","DoctorID":209,"Clinics":null,"speciality":"Dentistry","Locality":"Mumbai","Address":"202 Anand Vihar , Bldg No-2 , D-wing , Bhawani Chowk , b--cabin Road , Ambernath(e). Bhawani Chowk"} 
     ,{"Name":"Samidha Sen","DoctorID":210,"Clinics":null,"speciality":"Addiction Medicine","Locality":"Mumbai","Address":"S\/09 "} 
     ,{"Name":"Subodh Mehta","DoctorID":212,"Clinics":null,"speciality":"Orthopaedic Surgery","Locality":"Mumbai","Address":"Opera "}]} of type org.json.JSONObject cannot be converted to JSONArray 

вот мой код вида деятельности:объекта JSON не может быть преобразован в jsonarray в андроиде

class DownloadTask extends AsyncTask<String, Void, Object> { 
    protected Boolean doInBackground(String... params) { 
     try { 
      Thread.sleep(4000); // Do your real work here 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
     return true; // Return your real result here 
    } 

    protected void onPostExecute(Object result) { 
     // Pass the result data back to the main activity 
     DoctorSearchActivity.this.data = result; 
     if (DoctorSearchActivity.this.progressdialog != null) { 
      DoctorSearchActivity.this.progressdialog.dismiss(); 
     } 
     try { 
      JSONStringer geneology = new JSONStringer() 


        .object().key("Params").object().key("TypesOnSearch") 
        .value("name").key("CharactersToSearch") 
        .value("s") 
        .endObject(); 

      JSONArray results = new JSONArray(); 
      results = BC 
        .returnJSONArray(geneology, 
          "http://192.168.2.27/HYEHR_WCFService/DoctorService.svc/GetDoctorsList"); 
      if (results.length() == 0) { 
       Toast.makeText(
         DoctorSearchActivity.this, 
         "Error Occured while loading data.Try again later.", 
         Toast.LENGTH_LONG).show(); 
      } 
      // for (int i = 0; i < results.length(); i++) { 
      // Log.v("data", results.getString(i)); 
      // } 
      // aTable = BC.appendRows(aTable, results, 
      // DoctorSearchActivity.this); 
     } catch (Exception e) { 
      // TODO: handle exception 
     } 
    } 

} 

и моя функция JSON : общественного JSONArray returnJSONArray (JSONStringer JsonString, String URL) {

results = new JSONArray(); 

    try { 
     HttpPost request = new HttpPost(url); 
     request.setHeader("Accept", "application/json"); 
     request.setHeader("Content-type", "application/json"); 

     // Build JSON string 
     StringEntity entity = new StringEntity(JsonString.toString()); 
     request.setEntity(entity); 
     Log.v("data", request + JsonString.toString()); 
     // Log.v("data sender",request.setEntity(entity)); 
     // Send request to WCF service 
     DefaultHttpClient httpClient1 = new DefaultHttpClient(); 
     HttpResponse response = httpClient1.execute(request); 
     Log.v("response code", response.getStatusLine().getStatusCode() 
       + ""); 
     HttpEntity responseEntity = response.getEntity(); 
     // Read response data into buffer 
     char[] buffer = new char[(int) responseEntity.getContentLength()]; 
     InputStream stream = responseEntity.getContent(); 
     InputStreamReader reader = new InputStreamReader(stream); 
     reader.read(buffer); 
     stream.close(); 
     results = new JSONArray(new String(buffer)); 
     Log.v("results length : ", results.length() + ""); 
    } 
     catch (Exception e) { 
     // i mean sending data without key 
     // TODO: handle exception 
     e.printStackTrace(); 
    } 
    return results; 
} 

Я получаю эту ошибку, я передаю данные в jsonobject и получаю данные в jsonarray.

ответ

2
HttpEntity entity = httpResponse.getEntity(); 
String result = EntityUtils.toString(entity); 
JSONObject jsonObject=new JSONObject(result); 
JSONArray jsonArray=jsonObject.getJSONArray("GetDoctorsListResult"); 

использовать этот код после получения ответа.

+0

благодаря @Kirti Mane – PankajSharma

2

Корневой элемент JSON из URL-адреса - это JSONObject, который должен сначала разобрать его на JSONObject, а затем получить GetDoctorsListResult, который является массивом из объекта.

3

Попробуйте заменить это:

results = new JSONArray(new String(buffer)); 

этим:

results = new JSONObject(new String(buffer)).getJSONArray("GetDoctorsListResult"); 
1

Я думаю, что ваш первый элемент объекта GetDoctorsListResult - массив JSON. Таким образом, вы должны принять его значение в json-массиве.

REFER THIS THREAD и THIS ONE

JSONArray DoctorsList= jsonResponse.getJSONArray("GetDoctorsListResult");

Смежные вопросы