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


Using GET method with JSON Array

我目前有一个服务器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 对象。数组中的两个元素如下所示。

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. 有什么有效的方法可以在没有太多字符串操作的情况下提取数据?

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

使用 json_decode() .您可以在 php.net 上找到文档。

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

将所有 $_POST 更改为 $_REQUEST

然后制作这个

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

如果JSON数组太大,GET会失败,而太大不是很大。开机自检是去这里的方式。

一旦你在PHP脚本中有了数据,你可以用

$myData = json_decode($_POST['myData']);

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

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

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

那么我认为您已经在使用json_decode

唯一的事情是使用 GET,您将从单个调用中获得更少的 API 数据。