Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Android PHP Web服务从服务器获取数组_Php_Android_Json_Http - Fatal编程技术网

使用Android PHP Web服务从服务器获取数组

使用Android PHP Web服务从服务器获取数组,php,android,json,http,Php,Android,Json,Http,我已经用我的android应用程序成功地启动了HttpGet。它连接到服务器上的数据库,我可以用PHP获得查询结果。现在我只想得到结果,在本例中是一个数组,其中每行包含两个值。(实际上是X,Y坐标-我正在从服务器上获取GPS坐标) 我的PHP代码是: ...(assume already connected to Database) $query = "SELECT xcoords, ycoords FROM geo_table WHERE xcoords <> '0

我已经用我的android应用程序成功地启动了HttpGet。它连接到服务器上的数据库,我可以用PHP获得查询结果。现在我只想得到结果,在本例中是一个数组,其中每行包含两个值。(实际上是X,Y坐标-我正在从服务器上获取GPS坐标)

我的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);
 ?> 
也许我应该把它变成JSONArray? 我不知道现在该如何处理这个JSONObject。这真令人沮丧。我的最终目标是创建一个坐标的ArrayList/List(我想是整数类型的,每个坐标都乘以1E6)。但现在我只能盯着这个JSONObject看。非常感谢您的帮助。

您可以使用GSON(http://code.google.com/p/google-gson/)并对类的响应进行反序列化

创建如下所示的类:

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

}
//使用Gson反序列化

Type collectionType = new TypeToken<Collection<Geo>>(){}.getType();
Collection<Geo> geo = gson.fromJson(response, collectionType);
Type collectionType=new-TypeToken(){}.getType();
Collection geo=gson.fromJson(响应,collectionType);

如果您可以将PHP调用对您的问题的JSON响应包括在内,那么了解Android但不了解PHP的so人员也可以在这里帮助您。
Type collectionType = new TypeToken<Collection<Geo>>(){}.getType();
Collection<Geo> geo = gson.fromJson(response, collectionType);