我目前有一个服务器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
GET是一种可用于此类情况的方法吗?
在没有太多字符串操作的情况下提取数据的任何有效方法?
答案 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数据。