2011-09-09 11 views
2

私はアンドロイドアプリでHttpGetを正常に起動しました。それはサーバ上のデータベースに接続し、私はPHPでクエリ結果を得ることができます。今は結果を得たいだけです。この場合は配列で、各行に2つの値が含まれています。 (ACtucally X、Y座標 - 私はサーバーからGPS座標を取得しています)。Android PHP Webサービスを使用してサーバーから配列を取得する

私のPHPコードは次のとおりです。

...(assume already connected to Database) 

    $query = "SELECT xcoords, ycoords FROM geo_table WHERE xcoords <> '0' AND ycoords <> '0' "; 
$result = mysql_query($query); 

$rows = array(); 


while ($r = mysql_fetch_array($result, MYSQL_NUM)) 
{ 
//printf("X: %s Y: %s", $r[0], $r[1]); 
$rows[]=$r; 
} 

echo json_encode($rows); 
?> 

コードが動作します。私は私の配列を得る。そして、Androidで、私はHTTPGET応答に次の操作を行います。

 JSONObject j = new JSONObject(); 
     j.put("array", response); 

は、たぶん私はJSONArrayにそれを有効にしている必要がありますか? 私は今このJSONObjectで何をすべきか分かりません。本当にイライラしています。私の最終的な目標は、ArrayList/Coordのリスト(Integer型の場合、それぞれ1E6を掛けて考える)です。しかし、今のところ私はこのJSONObjectを凝視しているだけです。どんな助けもありがとうございます。

+0

をdeserialiseするGsonを使うの人々ので、 Androidを知っていても、PHPを知らない人があなたを助けることができます。 – momo

答えて

1

GSON(http://code.google.com/p/google-gson/)を使用して、クラスへの応答を逆シリアル化することができます。

このようなクラスを作成します。

public class Geo 
{ 
    public String longitude; 
    public String latitude; 

} 

//あなたの質問にPHPの呼び出しからのJSON応答を含めることができればそれが役立つだろう

Type collectionType = new TypeToken<Collection<Geo>>(){}.getType(); 
Collection<Geo> geo = gson.fromJson(response, collectionType); 
関連する問題