2017-02-02 7 views
-1

jsonをサーバーから取得してRecyclerViewに配置しようとしていますが、「java.lang.StringをJSONArrayに変換できません」というメッセージが表示されます。私は私のjsonを追跡しようとしているが、何も表示されていない。何が間違っている、どうすればこれを解決することができますか?あなたが共有している最低限の情報でjava.lang.StringをOkhttpからJSONArrayに変換できません

 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、私は私のURLにcodeigniterを使用しています。 –

答えて

1

、私はその背後にある理由は、あなたのiniある

JSONArray array = new JSONArray(ini); 

エラーがこの行であると仮定しています。

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

    } 

このdocumentationを見て、ネットワークがOkHttpで呼び出しを行う方法の詳細に理解するために:それは

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

ない。ここ.toString()

は、サンプルコードでなければなりません。

+0

.string()の部分を指していただきありがとうございます。私もtoString()でtypoを作成し、エラーが発生しました。 – 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') 

を...ありがとう。

関連する問題