2011-09-14 16 views
0


私のコード作業をしようとしています。
私はmysql接続 を作成し、jsonでデータをAndroidアプリに送信します。
私はほとんど作品を推測するが、私のlogcatはほとんど終わりに私にこの警告を与える:
「エラー解析データ」値[{「staff_phone」:「123」、「staff_name」:「ファビアン」など
私は私のSQLスクリプトで何か間違っていたと思います。これはスクリプトです:Androidのjson.GetJSONArray( "?")に関する問題

mysql_connect($db_host,$db_user,$db_pwd); 
mysql_select_db($database); 
$result = mysql_query("SELECT * FROM contactlijst"); 
$array = array(); 
while ($row = mysql_fetch_assoc($result)) 
{ 
array_push($array, $row); 
} 
print json_encode($array); 
mysql_close(); 


は、これらは私のJavaコードです:

public static JSONObject getJSONfromURL(String url){ 

    //initialize 
    InputStream is = null; 
    String result = ""; 
    JSONObject jArray = null; 

    //http post 
    try{ 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost(url); 
     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 

    }catch(Exception e){ 
     Log.e("log_tag", "Error in http connection "+e.toString()); 
    } 

    //convert response to string 
    try{ 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     result=sb.toString(); 
    }catch(Exception e){ 
     Log.e("log_tag", "Error converting result "+e.toString()); 
    } 

    //try parse the string to a JSON object 
    try{ 
      jArray = new JSONObject(result); 
    }catch(JSONException e){ 
     Log.e("log_tag", "Error parsing data "+e.toString()); 
    } 

    return jArray; 
} } 

この1:

ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); 

    //Get the data (see above) 
    JSONObject json = 
    Database.getJSONfromURL("http://fabian.nostradamus.nu/Android/getcontactinfo.php"); 

     try{ 
    JSONArray contactinfo = json.getJSONArray("contactlijst"); 

        //Loop the Array 
      for(int i=0;i < contactinfo.length();i++){      

       HashMap<String, String> map = new HashMap<String, String>(); 
       JSONObject e = contactinfo.getJSONObject(i); 

       map.put("voornaam", e.getString("staff_name")); 
       map.put("achternaam", e.getString("staff_lastname")); 
       map.put("geboortedatum", e.getString("staff_dateofbirth")); 
       map.put("adres", e.getString("staff_address")); 
       map.put("postcode", e.getString("staff_address_postal")); 
       map.put("woonplaats", e.getString("staff_address_city")); 
       map.put("email", e.getString("staff_email")); 
       map.put("telefoon", e.getString("staff_phone")); 
       mylist.add(map); 
     } 
      }catch(JSONException e)  { 
      Log.e("log_tag", "Error parsing data "+e.toString()); 
      } 

} 

だから私は間違って何をやっていますか? ありがとう!

答えて

0

getJSONArray()は、値が配列であるキーが必要です。これが機能しない場合

{"contactlijst": [{"staff_phone":"123","staff_name":"fabian"...

は、それが正しくフォーマットされていることを確認するためにあなたのJSONを検証してみてください:だから、もっとこのようになりますJSONを期待しています。私はしばしばその目的のためにJSONLintを使用します。

関連する問題