2017-02-02 11 views
-1

Я пытаюсь получить json с сервера и поместить его в свой RecyclerView, но в нем говорится: «java.lang.String не может быть преобразован в JSONArray». Я пытаюсь отследить мой json, но ничего не показал. Что не так, как я могу это решить?java.lang.String не может быть преобразован в JSONArray из Okhttp

 private void Prosesdataserver(int id){ 
    AsyncTask<Integer, Void, Void> task = new AsyncTask<Integer, Void, Void>() { 
     @Override 
     protected Void doInBackground(Integer... integers) { 
     OkHttpClient client = new OkHttpClient(); 
     try{ 
      RequestBody formBody = new FormBody.Builder().add("username_krm", username).add("password_krm", password).build(); 
      Request request = new Request.Builder().url("http://" + urlpakai + "/utrapos/index.php/getpenawaran?id="+integers[0]).post(formBody).build(); 
      response = client.newCall(request).execute(); 
      ini = response.body().toString(); 
      JSONArray array = new JSONArray(ini); 
      System.out.println("Saya Berkata: " + ini); 
       for(int i=0; i<array.length();i++){ 
       JSONObject object = array.getJSONObject(i); 
       DataJson hasil = new DataJson(object.getInt("id"), object.getString("kode"), object.getString("tglpenawaran"), object.getString("nama"), object.getString("supplier"), object.getString("nopenawaran")); 
       data.add(hasil); 
       } 
      }catch (IOException e){ 
       e.printStackTrace(); 
      } 
      catch (JSONException e){ 
       e.printStackTrace(); 
      } 
    return null; 
} 
+1

Загрузите строку, которую вы пытаетесь преобразовать в JSON –

+0

, разместите свой 'json' здесь – AJay

+0

@AxelH, я использую codeigniter для своего URL-адреса. –

ответ

1

С минимальной информацией вы совместно, я предполагаю, что ошибка находится в этой строке

JSONArray array = new JSONArray(ini); 

Причина, что ваш ini. Он должен быть

ini = response.body().string(); 

и не .toString()

Вот пример кода:

try { 
     String responseData = response.body().string(); 
     JSONArray json = new JSONArray(responseData); 
    } catch (JSONException e) { 

    } 

Для большего понимания о том, как сделать сеть звонки с OkHttp, посмотрите на эту documentation.

+0

Спасибо за указание на .string() часть. Я также сделал опечатку с toString() и там были ошибки. – ultrasamad

0

@Denny Kurniawan Попробуйте добавить Полный текст на вашей базе данных:

ALTER TABLE yourtable ADD FULLTEXT(kode,tglpenawaran,nama,supplier,nopenawaran); 

Затем сделайте тест:

SELECT * FROM yourtable WHERE MATCH (kode,tglpenawaran,nama,supplier,nopenawaran) AGAINST ('text') 

Это работа для меня ... Спасибо.