该应用程序将gps位置发送到用户设置的php服务器。我有一个PHP MySQL模型服务器。我不知道如何接收从应用程序发送到我服务器数据库的JSON。任何帮助,将不胜感激。提前致谢。此代码位于https://github.com/jcs/triptracker/blob/master/src/org/jcs/triptracker/TrackerService.java
POSTed参数是一个位置数组,每个元素都是一个哈希,包括时间(来自位置服务的Unix时间戳),纬度和经度(两个任意精度的浮点值),以及每秒米的速度。
提前致谢。
答案 0 :(得分:0)
您可以使用json_decode()从您收到的json中创建一个对象。
一个例子是:
$data = json_decode($_POST['yourdata']);
假设JSON看起来像这样:
{"foo":"bar"}
您现在可以:
echo $data->foo;
在mysql查询中使用此数据。
答案 1 :(得分:0)
你可以像这样在你的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.");");
答案 2 :(得分:0)
花了一些时间来解码格式,但以下代码片段是从应用程序中提取数据。请注意,行程跟踪器可能会提交一系列以前无法传输的位置点。
<?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'];
?>
请注意&#39; time&#39;从纪元开始是MILLI秒,对于unix时间戳,我们需要将1000除以浮点以允许转换。同样,可以有多个位置阵列可用,通过在循环中计算i来访问其他阵列。