2017-07-09 8 views
0

サーバーからデータベースからデータを取得したいのですが、JSON.typeの不一致エラーが発生しています。コード..........すべてのヘルプは理解されるであろう。.. .............アンドロイドスタジオでJSON typeMismatchエラーが表示される

public class MainActivity extends AppCompatActivity { 

private static final String URL_DATA = "https://........php"; 
private RecyclerView recyclerView; 
private RecyclerView.Adapter adapter; 
String jsonData; 

private List<ListItem> listitems; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    recyclerView = (RecyclerView) findViewById(R.id.recyclerView); 
    recyclerView.setHasFixedSize(true); 
    recyclerView.setLayoutManager(new LinearLayoutManager(this)); 

    listitems = new ArrayList<>(); 

    loadRecyclerViewData(); 
} 

    private void loadRecyclerViewData() 
    { 
     final ProgressDialog progressDialog = new ProgressDialog(this); 
     progressDialog.setMessage("Loading data..."); 
     progressDialog.show(); 

     StringRequest stringRequest = new StringRequest(Request.Method.GET, 
       URL_DATA, 
       new Response.Listener<String>() 
       { 
        @Override 
        public void onResponse(String s) 
        { 
         progressDialog.dismiss(); 
         try { 
           JSONObject jsonObject = new JSONObject(s); 
          JSONArray array = jsonObject.getJSONArray(jsonData); 

          for(int i=0;i<array.length();i++) { 
           JSONObject o = array.getJSONObject(i); 
           ListItem item = new ListItem(
             o.getString("Name"), 
             o.getString("Address") 
           ); 

           listitems.add(item); 
          } 
          adapter = new MyAdapter(listitems,getApplicationContext()); 
          recyclerView.setAdapter(adapter); 
         } 
         catch(JSONException e) 
         { 
          e.printStackTrace(); 
         } 
        } 
       }, 
       new Response.ErrorListener() 
       { 
        @Override 
        public void onErrorResponse(VolleyError volleyError) { 
         progressDialog.dismiss(); 
         Toast.makeText(getApplicationContext(), volleyError.getMessage(),Toast.LENGTH_LONG).show(); 
        } 

        }); 

        RequestQueue requestQueue = Volley.newRequestQueue(this); 
        requestQueue.add(stringRequest); 

    } 
} 

そしてここでlogcatは

07-09 10:22:10.735 25053-25053/sensor.recyclercardview2 W/System.err:  
at org.json.JSON.typeMismatch(JSON.java:111) 
07-09 10:22:10.735 25053-25053/sensor.recyclercardview2 W/System.err:  
at org.json.JSONObject.<init>(JSONObject.java:160) 
07-09 10:22:10.735 25053-25053/sensor.recyclercardview2 W/System.err:  
at org.json.JSONObject.<init>(JSONObject.java:173) 
07-09 10:22:10.735 25053-25053/sensor.recyclercardview2 W/System.err:   
at sensor.recyclercardview2.MainActivity$1.onResponse(MainActivity.java:63) 
07-09 10:22:10.735 25053-25053/sensor.recyclercardview2 W/System.err:  
at sensor.recyclercardview2.MainActivity$1.onResponse(MainActivity.java:57) 
+0

jsonレスポンスを貼り付けることはできますか? –

+0

@AmitKumar私の問題が解決しました...ありがとうございました... – Alex

答えて

0

ですこれらの2行を置換する

JSONObject jsonObject = new JSONObject(s); 
JSONArray array = jsonObject.getJSONArray(jsonData); 

with this

JSONArray array = new JSONArray(s); 
+0

私の一日を節約してくれてありがとうございました...私は最後の2時間このままで立ち往生し、間違っていたものを見つけることができませんでした...ありがとうもう一度.. – Alex

+0

この答えを解決してマークしてください –

関連する問題