【发布时间】:2021-11-22 15:21:28
【问题描述】:
我正在使用以下代码从我的 Web API 发送和检索数据
//data
$data = array("Id_Empresa" => 1);
try {
$ch = curl_init($url);
$data_string = json_encode($data);
if (FALSE === $ch)
throw new Exception('failed to initialize');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)));
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
var_dump($data);
$json = json_decode($data);
foreach ($json->msg as $item) {
echo "$item->Nombre, $item->Descripcion" . PHP_EOL;
}
// ...process $output now
} catch(Exception $e) {
trigger_error(sprintf(
'Curl failed with error #%d: %s',
$e->getCode(), $e->getMessage()),
E_USER_ERROR);
}
这是我得到的回应
{"ok":true,"msg":[{"Nombre":"Carnicerias","Descripcion":"Comercio al por menor de carnes rojas","H_Open":"01:00:00","H_Close":"02:00:00"}]}bool(true)
我正在尝试使用以下代码访问 JSON(因为它在类似的请求中对我有用):
$json = json_decode($data);
foreach ($json->msg as $item) {
echo "$item->Nombre, $item->Descripcion" . PHP_EOL;
}
但正如您所见,变量 $data 不再是 JSON,而是变成了 bool(true)。
有谁知道我如何访问 JSON msj 或为什么 $data 变量从 JSON 更改为 bool?
【问题讨论】: