希望获得一些帮助。我想使用PHP POST方法从json多数组获取数据,如果我使用不带多数组的JSON,则可以获取该数据。这是我的杰森:
{
"total_record": "300",
"data":
[{
"guestid": "757",
"rsvid": "3706001",
"conf_no": "fnine-3706001",
"arrival_date": "2017-09-25 14:34:28",
"departure_date": "2017-09-26 11:18:35"
},
{
"guestid": "4835",
"rsvid": "3472001",
"conf_no": "fnine-3472001",
"arrival_date": "2018-03-28 00:00:00",
"departure_date": "2018-03-30 13:00:00"
}]
}
对于如下所示的PHP代码:
print_r($_POST);
$fieldpost1 = $this->post();
print_r($fieldpost1);
$fieldpost2 = json_decode($this->input->post(), true);
print_r($fieldpost2);
结果:
Array ( ) Array ( )
A PHP Error was encountered
Severity: Warning
Message: json_decode() expects parameter 1 to be string, array given
Filename: controllers/Api.php
Line Number: 70
Backtrace:
任何人都可以帮助我,如果无法使用此方法,也许还有其他方法可以在PHP或Codeigniter中使用它,谢谢。
答案 0 :(得分:0)
不要将True用作json解码
$json = json_decode($json);
print_r($json);
foreach ($json->data as $data)
{
echo 'guestid : ' .$data->guestid .'<br/>';
}
}
答案 1 :(得分:0)
在代码点火器$this->input->post('keyword', TRUE);
方法中需要keyword
。
您没有传递关键字,因此该关键字将返回NULL
值。
如果要获取请求正文,请使用此
$requestBody = json_decode($this->input->raw_input_stream, true);
答案 2 :(得分:0)
您要将整个$_POST
数组传递给json_decode()
。
尝试json_decode($this->input->post('json_field'));
答案 3 :(得分:0)
Tge post方法从浏览器返回参数的关联数组 根据定义,它不是json字符串
我们假设post发送的参数是json,我们可以使用它:
$json = $_POST['json'];
然后这应该工作:
print_r($json);
要获取json作为数组,则应使用true参数对json解码$ json以获得关联数组而不是对象
$jsonarray = array();
$jsonarray = json_decode($json, true);
现在要打印它,需要每一个:
foreach ($jsonarray as $fieldpost1) {
print_r($fieldpost1);
}
希望有帮助