如何创建json响应

时间:2014-12-12 10:18:13

标签: php android mysql json google-maps

我正在使用谷歌地图v2开发一个Android应用程序,在服务器端我使用的是php和mysql数据库。在数据库中已经存在许多纬度和经度的位置坐标,所以我想要的是当用户打开应用程序时,背景服务从数据库通过服务器获取所有这些纬度和经度并在地图上显示,但我是卡在PHP结束。假设这是我的数据库数据

+---------+---------+---------+--------+
|  uid    |  lat    | long    |  loc   |
+---------+---------+------- -+--------+
| 1       |Value1 A1|Value2 A1|    A   |
+---------+---------+---------+--------+
| 2       |Value1 B2|Value2 B2|    B   |
+---------+---------+---------+--------+
| 3       |Value1 C3|Value2 C3|    C   |
+---------+---------+---------+--------+
| 4       |Value1 D4|Value2 D4|    D   |
+---------+---------+---------+--------+

这个查询可以给我数据行$result = mysql_query("SELECT uid, lat, long, loc FROM table"),但是如何以一些数组序列方式存储这些数据,所以当在json中对它进行编码时,它会生成类似的响应

    [
    {
    "uid": "1": [
            {
                "lat": "Value1_A1",
                "lon": "Value2_A1"
                "loc": "A"
            }

        ]
    },
    {
    "uid": "2": [
            {
                "lat": "Value1_B2",
                "lon": "Value2_B2"
                "loc": "B"
            }

        ]
    },
{
    "uid": "3": [
            {
                "lat": "Value1_C3",
                "lon": "Value2_C3"
                "loc": "C"
            }

        ]
    },
{
    "uid": "4": [
            {
                "lat": "Value1_D4",
                "lon": "Value2_D4"
                "loc": "D"
            }

        ]
    },
    and so on...............
]

请帮助我,因为我正在寻找过去两天的解决方案但无法找到任何合理的解决方案。

3 个答案:

答案 0 :(得分:5)

尝试mysql_fetch_assoc:

$json = array();
while ($row = mysql_fetch_assoc($result)) {
    $json[$row['uid']] = array(
       'lat' => $row['lat'],
       'lon' => $row['lon'],
       'loc' => $row['loc']
    );
}
echo json_encode($json);

您应该使用MySQLi或PDO_MySQL而不是mysql _。

答案 1 :(得分:1)

您可以这样使用:

$result = mysql_query("SELECT uid, lat, long, loc FROM table")
    $user = array();
$i=0;
  foreach($result as $key => $val){
$mess[$i][uid]=$val[uid];
$mess[$i][uid]=$val[lat];
$mess[$i][uid]=$val[long];
$i++;
}

$user=$mess;
echo json_encode($user);

我希望这会对你有所帮助。

答案 2 :(得分:0)

您可以获取$ results并将其构建为数组,然后将其传递给json_encode,如下所示。

json_encode($array);

你可以在php中输出json

http://php.net/manual/en/function.json-encode.php