我目前有一个服务器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
GET是一种可用于这种情况的方法吗?
有什么有效的方法可以在没有太多字符串操作的情况下提取数据?
您可以使用 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 数据。