2013-01-18 32 views
-1

我最近在我的服務器上建立了一個php頁面,該頁面在我的數據庫中運行並將其輸出到頁面上。在Java/Android中解析JSON數組時出錯

JSONObject json = JSONfunctions.getJSONfromURL("http://abc.com/getjson.php"); 

     try{ 

      JSONArray myArray = json.getJSONArray("date"); 

      for(int i=0;i<myArray.length();i++){       
       HashMap<String, String> map = new HashMap<String, String>();  
       JSONObject e = myArray.getJSONObject(i); 

       map.put("id", String.valueOf(i)); 
       map.put("date", "date name:" + e.getString("date")); 
       map.put("activity", "activity: " + e.getString("activity")); 
       mylist.add(map);    
      } 

http://abc.com/getjson.php輸出:

[{"date":"2012-04-23","activity":"gym"},{"date":"2012-04-24","activity":"walkin‌​g"}] 
+0

越來越JSONArray作爲根元素,而不是把JSONObject什麼是'json'和你怎麼得到它?你會得到哪個錯誤信息? – Henry

+0

可能的重複http://stackoverflow.com/questions/10729102/android-json-array-returns-transform-error-103/13922033#13922033 –

回答

1

解析JSON字符串作爲獲取日期:

JSONArray myArray=JSONfunctions.getJSONfromURL("http://abc.com/getjson.php"); 

for(int i=0;i<myArray.length();i++){ 

JSONObject myobj = myArray.getJSONObject(i); 

// get date here 
    String strdate=myobj.getString("date"); 

// get activity here 
    String stractivity=myobj.getString("activity"); 
} 

因爲目前JSON字符串結構JSONArray -> JSONObject -> key-value

編輯:你需要改變getJSONfromURL方法的返回類型JSONArray而不是JSONObject,因爲你是從服務器

+0

我相信問題在這裏:JSONArray myArray = new JSONArray(「你的json字符串「); myArray爲空,因爲「我的JSON字符串」不存在於我從Web中獲取的JSON中。 – EGHDK

+0

@EGHDK:「你的json字符串」表示你從服務器獲得的當前字符串,如問題「[{」date「:」2012-04-23「,」activity「:」gym「},{」date「 :「2012-04-24」,「activity」:「walking」}]「把它代替」你的json字符串「 –

+0

eclipse中的錯誤:運算符 - 未定義爲參數類型(s)String,int – EGHDK