2017-01-25 8 views
0

JSONのリンクを構文解析JSON配列 - http://jsonviewer.stack.hu/#http://www.saveme.ie/api/savings/アンドロイド - 無アレイ名

イムこのバックグラウンドタスクでのAndroidでリストビューを埋めるためにJSONを取得しようとしているが、そのJSONに問題があると述べました。配列に名前がないためと思われます。

名前を付けずに配列をフェッチできるようにコードを変更するにはどうすればよいですか?

private class GetSavings extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     // Showing progress dialog 
     pDialog = new ProgressDialog(MainActivity.this); 
     pDialog.setMessage("Please wait..."); 
     pDialog.setCancelable(false); 
     pDialog.show(); 

    } 

    @Override 
    protected Void doInBackground(Void... arg0) { 
     HttpHandler sh = new HttpHandler(); 

     // Making a request to url and getting response 
     String jsonStr = sh.makeServiceCall(url); 

     Log.e(TAG, "Response from url: " + jsonStr); 

     if (jsonStr != null) { 
      try { 
       **JSONObject jsonObj = new JSONObject(jsonStr); 

       // Getting JSON Array node 
       JSONArray savings = jsonObj.getJSONArray("savings"); 
       // looping through All Contacts 
       for (int i = 0; i < savings.length(); i++) { 
        JSONObject c = savings.getJSONObject(i); 
        String title = c.getString("title"); 

       }** 
      } catch (final JSONException e) { 
       Log.e(TAG, "Json parsing error: " + e.getMessage()); 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         Toast.makeText(getApplicationContext(), 
           "Json parsing error: " + e.getMessage(), 
           Toast.LENGTH_LONG) 
           .show(); 
        } 
       }); 

      } 
     } else { 
      Log.e(TAG, "Couldn't get json from server."); 
      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        Toast.makeText(getApplicationContext(), 
          "Couldn't get json from server. Check LogCat for possible errors!", 
          Toast.LENGTH_LONG) 
          .show(); 
       } 
      }); 

     } 

     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 
     // Dismiss the progress dialog 
     if (pDialog.isShowing()) 
      pDialog.dismiss(); 
     /** 
     * Updating parsed JSON data into ListView 
     * */ 
     ListAdapter adapter = new SimpleAdapter(
       MainActivity.this, savingsList, 
       R.layout.list_item, new String[]{"name", "email", 
       "mobile"}, new int[]{R.id.name, 
       R.id.email, R.id.mobile}); 

     lv.setAdapter(adapter); 
    } 

} 
+0

入手した特定のエラーを共有できますか? – DCruz22

+0

最初のリンクはJSONです - http://jsonviewer.stack.hu/#http://www.saveme.ie/api/savings/ – ChrisM

+0

これは私の答えです - http://stackoverflow.com/a/41616005/ 4741746 –

答えて

1

代わりのJSONObjectでそれをキャストし、JSONArrayにそれをキャスト。

JSONArray jsonObj = new JSONArray(jsonStr); 

次に、配列をトラバースします。

+0

トラバース配列を説明するための小さなコードサンプルを提供できますか?ありがとう – ChrisM

+0

for(int i = 0; i