如何创建 json 响应


How to create json response

我正在使用谷歌地图v2开发一个Android应用程序,在服务器端我正在使用php和mysql数据库。在数据库中,已经存储了许多纬度和经度方面的位置坐标,所以我想要的是当用户打开应用程序时,backgroud 服务通过服务器从数据库中获取所有这些纬度和经度并显示在地图上,但我被困在 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...............
]

请帮助我,因为我正在寻找最近两天的解决方案,但找不到任何合理的解决方案。

尝试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_。

你可以这样使用:

$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);

我希望这对你有帮助。

你可以把你的$results构建成一个数组,然后按如下方式通过json_encode传递它。

json_encode($array);

您将在 php 中执行此操作以输出 json

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