2012-02-11 19 views
0

私は、質問する前にstackoverflowで多くの例を読んだことがありますが、これまでのところ運はありませんでした。私がしようとしているのは、Androidで使用するためにphp/mysqlから戻ってきたjson配列を解析することです。私は「ユーザー名」を抽出してのTextViewに送信しようとしているAndroidのjsonの解析で期待される結果が得られない

[{"username":"lawn edge","distance":"0.00766418723166294"},{"username":"bbq","distance":"0.00876051437108357"},{"username":"Tablet","distance":"0.0140815866739065"}] 

:私のコードは、私は、変換後にこのようになります文字列にJSONに変換することができ時点まで動作します。私が試したほとんどの例は空のテキストビューを作成するか、上記のようにjson文字列全体をダンプします。私はplayerlist.setText(結果)を変更した場合

private void returnJson() { 
    // TODO Auto-generated method stub 

    try { 

     httpPostproximity = new HttpPost(
       "http://vtolblog.com/finddistance.php"); 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3); 

     nameValuePairs.add(new BasicNameValuePair("lat", lat)); 
     nameValuePairs.add(new BasicNameValuePair("lng", lng)); 
     nameValuePairs.add(new BasicNameValuePair("username", check)); 
     httpPostproximity 
       .setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     HttpResponse response = httpclient.execute(httpPostproximity); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 

    } catch (Exception e) { 
     playerlist.setText("error3"); 
    } 

    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 + "\r\n"); 
     } 
     is.close(); 
     result = sb.toString(); 
     result.trim(); 
    } catch (Exception e) { 
     playerlist.setText("error2"); 
    } 
    try { 
     JSONObject json_data = new JSONObject(result); 
     JSONArray jArreglo = new JSONArray(result); 
     for (int i = 0; i < jArreglo.length(); i++) { 
      json_data = jArreglo.getJSONObject(i); 
      Log.i("log_tag", "Player: " + json_data.getString("username")); 
      // Get an output to the screen 
      jsonplayers += "\n\t" + jArreglo.getJSONObject(i); 
     } 

    } catch (JSONException e) { 
     Log.e("log_tag", "Error parsing data " + e.toString()); 
     playerlist.setText("Error parsing json"); 
    } 

    playerlist.setText(jsonplayers); 

    return; 

    // end of returnJson() 
} 

;:私が得ている最も近い以下のコードを使用しています上記のjson配列を表示するので、その時点までコードは正常であると仮定していますか? 私は離れていますか?私を助けるために他に何かが必要な場合は、事前にお知らせください。

答えて

0

私はあなたがライン上での例外を取得していると思う:

JSONObject json_data = new JSONObject(result); 

結果がJSONArray、ないJSONObjectですので、この行をコメントしてみてください。

+0

私はそれをコメントアウトすると、私は空白のテキストビューになります。おそらく、私が抱えている問題は、jsonオブジェクトを探していて配列のように扱わないコードを適用しようとしていることでしょうか? – user1203283

関連する問題