首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中接收来自Triptracker android应用的JSON数据?

如何在php中接收来自Triptracker android应用的JSON数据?
EN

Stack Overflow用户
提问于 2012-11-29 20:58:06
回答 3查看 576关注 0票数 0

这个应用程序根据用户的设置将gps定位发送到php服务器。我有一个PHP MySQL模型服务器。我不知道如何接收从应用程序发送到服务器数据库的JSON。如能得到ANy的帮助,将不胜感激。提前谢谢。其代码位于https://github.com/jcs/triptracker/blob/master/src/org/jcs/triptracker/TrackerService.java

POSTed参数是一个位置数组,每个元素都是一个散列,包括时间(来自位置服务的Unix时间戳)、纬度和经度(两个任意精度的浮点值)和速度(以米/秒为单位)。

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-11-29 21:02:16

您可以使用json_decode()在接收到的json之外创建对象。

下面是一个例子:

代码语言:javascript
复制
$data = json_decode($_POST['yourdata']);

假设JSON如下所示:

代码语言:javascript
复制
{"foo":"bar"}

您现在可以执行以下操作:

代码语言:javascript
复制
echo $data->foo;

在您的mysql查询中使用此数据。

票数 0
EN

Stack Overflow用户

发布于 2012-11-29 21:04:24

你可以像下面这样获取php中的变量:

代码语言:javascript
复制
$lat = $_REQUEST['lat'];
$lng = $_REQUEST['lng'];

然后,您可以在数据库中插入该$lat和$lng。

示例:

代码语言:javascript
复制
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.");");
票数 0
EN

Stack Overflow用户

发布于 2014-05-29 19:18:27

我花了一段时间来解码格式,但下面的代码片段是从应用程序中提取数据。请注意,trip tracker可能会提交一个数组,其中包含到目前为止无法传输的以前的位置点。

代码语言:javascript
复制
<?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来访问其他数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13626379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档