【问题标题】:How to receive JSON data in php from Triptracker android app?如何从 Triptracker android 应用程序接收 php 中的 JSON 数据?
【发布时间】:2012-11-29 12:58:05
【问题描述】:
【问题讨论】:
标签:
php
android
json
gps
location
【解决方案1】:
您可以使用 json_decode() 从收到的 json 中创建一个对象。
一个例子是:
$data = json_decode($_POST['yourdata']);
假设 JSON 看起来像这样:
{"foo":"bar"}
您现在可以这样做:
echo $data->foo;
在你的 mysql 查询中使用这些数据。
【解决方案2】:
你可以像这样在你的 php 中获取变量:
$lat = $_REQUEST['lat'];
$lng = $_REQUEST['lng'];
然后你可以在你的数据库中插入 $lat 和 $lng。
例子:
function launchQuery($call)
{
$link = mysqli_init();
if (!$link) {
die('mysqli_init failed');
}
if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 1')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}
if (!mysqli_real_connect($link, $dbhost, $dbuser, $dbpassword, $dbname, $dbport)) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
mysqli_query($link,"SET NAMES 'utf8'");
$rs = mysqli_query($link, $call);
mysqli_close($link);
return $rs;
}
launchQuery("insert into whatever_your_table_name_is (latitude, longitude) values (".$lat.",".$lng.");");
【解决方案3】:
我花了一些时间来解码格式,但下面的 sn-p 正在从应用程序中提取数据。请注意,trip tracker 可能会提交一系列以前无法传输的位置点。
<?php
$locations = $_REQUEST['locations']; // Get all POST arrays
i = 0; // Choose first locations array
// Now you can access single fields with:
time = $locations[i]['time'];
latitude = $locations[i]['latitude'];
longitude = $locations[i]['longitude'];
speed = $locations[i]['speed'];
?>
请注意,“时间”是自纪元以来的 MILLIseconds,对于 unix 时间戳,我们需要除以 1000 为浮点数以允许转换。同样,可以有超过 1 个可用的位置数组,通过在循环中向上计数 i 来访问其他数组。