綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 關於Eclipse 抓取json資料

[複製連結] 查看: 4763|回覆: 8|好評: 0
跳轉到指定樓層
樓主
hugo3334059 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2013-8-12 02:27

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
我參照此Android解析json資料範例教學想嘗試抓取JSON資料來進行顯示



但每次按抓取時都會出現錯誤   讓模擬器顯示Unfortunately, AAA has stopped就關閉了
  1. package com.example.aaa;

  2. import org.apache.http.HttpResponse;
  3. import org.apache.http.client.methods.HttpGet;
  4. import org.apache.http.impl.client.DefaultHttpClient;
  5. import org.apache.http.params.BasicHttpParams;
  6. import org.apache.http.params.HttpConnectionParams;
  7. import org.apache.http.params.HttpParams;
  8. import org.apache.http.util.EntityUtils;
  9. import org.json.JSONArray;
  10. import org.json.JSONException;
  11. import org.json.JSONObject;

  12. import com.example.aaa.MainActivity;
  13. import com.example.aaa.R;

  14. import android.os.Bundle;
  15. import android.app.Activity;
  16. import android.util.Log;
  17. import android.view.Menu;
  18. import android.view.View;
  19. import android.view.View.OnClickListener;
  20. /*import android.widget.AdapterView.OnItemClickListener;*/
  21. import android.widget.ArrayAdapter;
  22. import android.widget.Button;
  23. import android.widget.ListView;
  24. /*import android.widget.*;*/
  25. /*Toast AdapterView*/
  26. public class MainActivity extends Activity {


  27.        
  28.         Button btnParse;
  29.     ListView listResult;

  30.         @Override
  31.         protected void onCreate(Bundle savedInstanceState) {
  32.                 super.onCreate(savedInstanceState);
  33.                 setContentView(R.layout.activity_main);
  34.                 btnParse = (Button)findViewById(R.id.btn_parse);
  35.         listResult=(ListView)findViewById(R.id.list_result);
  36.         btnParse.setOnClickListener(new OnClickListener()
  37.         {public void onClick(View v){
  38.                 getJSONData();
  39.                
  40.                 String [] libStationId = parseJSONData(getJSONData());
  41.                 ArrayAdapter<String> listAdapter = new ArrayAdapter<String>
  42.                 (MainActivity.this
  43.                 , android.R.layout.simple_expandable_list_item_1
  44.                 , libStationId                );
  45.                 listResult.setAdapter(listAdapter);
  46.                
  47.         }
  48.         });
  49.         }
  50.        



  51.         //取得資料 陣列型態
  52.     private JSONArray getJSONData(){
  53.            
  54.             String url = "http://data.ntpc.gov.tw/NTPC/od/data/api/TRB27/;jsessionid=51BC385898B4B1293A1D845041B2E2A8?$format=json";
  55.             HttpGet httpget = new HttpGet(url);
  56.             try{
  57.                     HttpResponse httpresponse = getHttpClient().execute(httpget);
  58.                     String result = EntityUtils.toString(httpresponse.getEntity());
  59.                     Log.e("result",result);
  60.                     JSONArray jsonarr = new JSONArray(result);
  61.                     return jsonarr;
  62.             }catch(Exception e){e.printStackTrace();
  63.                     return null;

  64.             }           
  65.     }
  66.    

  67.     //解析JSON資料後回傳String[] 型態
  68.     private String[] parseJSONData(JSONArray dataInput)
  69.     {
  70.             try {
  71.                     String [] libStationId = new String[dataInput.length()];
  72.                     String [] libEstimateTime = new String[dataInput.length()];
  73.                     String [] libRouteID = new String[dataInput.length()];
  74.             for(int i = 0 ; i <5 ;i++)
  75.             {
  76.                     JSONObject lib = dataInput.getJSONObject(i);
  77.                    
  78.                         Log.e("StationId",lib.getString("StationId"));
  79.                         Log.e("EstimateTime",lib.getString("EstimateTime"));
  80.                         Log.e("RouteID",lib.getString("RouteID"));
  81.                        
  82.                         libStationId[i]=lib.getString("StationId");
  83.                         libEstimateTime[i] = lib.getString("EstimateTime");
  84.                         libRouteID[i] = lib.getString("RouteID");
  85.             }

  86.             return libStationId;
  87.             }catch (JSONException e) {
  88.                         e.printStackTrace();
  89.                         return null;
  90.                 }
  91.     }
  92.    
  93.     //timeout
  94.     private DefaultHttpClient getHttpClient(){
  95.             HttpParams httpparams = new BasicHttpParams();
  96.             int timeoutConnection = 5000;
  97.             HttpConnectionParams.setConnectionTimeout(httpparams, timeoutConnection);
  98.             int timeoutSocket = 3000;       
  99.             HttpConnectionParams.setSoTimeout(httpparams, timeoutSocket);
  100.             DefaultHttpClient dfaultHC = new DefaultHttpClient(httpparams);
  101.             return dfaultHC;
  102.     }       
  103.        
  104.         @Override
  105.         public boolean onCreateOptionsMenu(Menu menu) {
  106.                 // Inflate the menu; this adds items to the action bar if it is present.
  107.                 getMenuInflater().inflate(R.menu.main, menu);
  108.                 return true;
  109.         }

  110. }
複製代碼
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
ploglin | 收聽TA | 只看該作者
發表於 2013-8-12 10:45
建議你把原本的project都刪除,然後重新下載android adt試試看。

評分

參與人數 1碎鑽 +1 幫助 +1 收起 理由
hugo3334059 + 1 + 1 非常讚

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| hugo3334059 | 收聽TA | 只看該作者
發表於 2013-8-12 14:45
重新下載之後再貼上自己打的程式碼嗎?

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
xjxuvup | 收聽TA | 只看該作者
發表於 2013-8-12 15:20
去下載Android SDK
裡面就有附Eclipse,打開後,先把環境設定好。
大致上就這樣
  1. developer.android.com/intl/zh-tw/sdk/index.html
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
 樓主| hugo3334059 | 收聽TA | 只看該作者
發表於 2013-8-12 15:24
我是用Android SDK附的Eclipse寫的

developer.android.com/intl/zh-tw/sdk/index.html ??   

我還是個新手 qq
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
xjxuvup | 收聽TA | 只看該作者
發表於 2013-8-12 16:30
那應該是沒問題啊@@
我也是直接下載sdk,執行裡面的Eclipse來寫project。
應該貼上去,改一改把有錯誤的地方修一修就能跑了。
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
 樓主| hugo3334059 | 收聽TA | 只看該作者
發表於 2013-8-12 17:58
我顯示是沒有錯誤  但是跑就是有問題qq
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

8
M98530065 | 收聽TA | 只看該作者
發表於 2013-8-14 11:27
1.log 上來吧
2.com.example.aaa.R; 請砍掉
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

9
 樓主| hugo3334059 | 收聽TA | 只看該作者
發表於 2013-8-14 22:20
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則