将GET方法与JSON数组一起使用

时间:2013-09-12 02:11:17

标签: php json get

我目前有一个服务器API来接收带有JSON数据的POST。 JSON数据如下

JSON对象如下

[{
          firstName : "XXXXX",
          surName   : "XXXXXX",
          contact   : "XXXXXXX",
          branch    : "XXXXXX",
          reportsTo : "XXXXX",
          startTime : "9:00AM",
          endTime   : "6:00PM"},
  {
          firstName : "XXXXXX",
          surName   : "XXXXXXX",
          contact   : "XXXXXXX",
          branch    : "XXXXXXX",
          reportsTo : "XXXXXXX",
          startTime : "9:00AM",
          endTime   : "6:00PM"
}];

现在我需要更改代码以支持相同JSON数据的GET。 JSON对象包含多个json对象。 Array中的两个元素如下所示。

APP_ID=XXXXXXXf&client=XXXXXXXXXX&Details=%7B%22firstName%22:%22XXXXXXX%22,%22surName%22:%22lXXXXXXX%22,%22contact%22:%22XXXXXXX%22,%22branch%22:%22XXXXXXX%22,%22reportsTo%22:%22XXXXXXX%22,%22startTime%22:%229:00AM%22,%22endTime%22:%226:00PM%22%7D&professionalDetails=%7B%22firstName%22:%22XXXXXXX%22,%22surName%22:%22XXXXXXX%22,%22contact%22:%22XXXXXXX%22,%22branch%22:%22XXXXXXX%22,%22reportsTo%22:%22XXXXXXX%22,%22startTime%22:%229:00AM%22,%22endTime%22:%226:00PM%22%7D&timeStamp=1378950760

  1. GET是一种可用于此类情况的方法吗?

  2. 在没有太多字符串操作的情况下提取数据的任何有效方法?

4 个答案:

答案 0 :(得分:0)

如果JSON数组太大,你会发现GET会失败,而且太大也不会很大。 POST是去这里的方式。

在PHP脚本中获得数据后,您可以使用

对其进行解码
$myData = json_decode($_POST['myData']);

之后,您可以将其作为PHP变量访问:

$firstFirstName = $myData[0]->firstName;

答案 1 :(得分:0)

您可以使用GET,但限制在约2000个字符(请参阅here

使用json_decode()。找到doc on php.net

答案 2 :(得分:0)

我不是专业人士。 但我会做的是。

将所有$ _POST更改为$ _REQUEST

然后做这个

if(isset($_GET['firstName']))
{
 foreach($_RESQUEST as $k => $v)
 {
  $_RESQUEST[$k] = url_decode($v);
 }
}

答案 3 :(得分:0)

您可以在相同的代码中使用get方法而不是post .. json解析将以相同的方式...而不是$ _POST ['josn_str']您需要使用$ _GET ['json_str']

然后我认为你已经在使用json_decode

只有使用GET才能通过一次调用获得更少的API数据。