【发布时间】:2017-08-14 07:37:43
【问题描述】:
我有这样的回应:
{
"Contratos": [
{
"IdCUPS": 0,
"CodigoCUPS": "",
"IdContrato": 0,
"CodigoContrato": null,
"IdCliente": 0,
"IdDocumento": null,
"IdEmpresa": null,
"Incidencias": [
{
"Propiedad": "CodigoCUPS",
"Code": 0,
"CodeAlfa": "",
"Mensaje": "El cups ya esta asignado a contratos activos",
"IsAdvertencia": false,
"IsError": true,
"IsExcepcion": false,
"ExceptionTimestamp": "0001-01-01T00:00:00",
"ExceptionMessage": "",
"ExceptionStackTrace": "",
"InnerException": "",
"ImageSource": ""
}
]
}
]
}
如何访问“Mensaje”选项? 我有这段代码,我在其中制作 curl_init 及其选项:
$ch = curl_init($url.$contratoPotencial);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
我尝试使用此代码:
echo "<br><br> Mensaje: ";
echo "<br>".$response->Contratos->Incidencias->Mensaje;
但它不起作用!
【问题讨论】:
-
为什么该代码有任何工作的希望?阅读the manual on how arrays work。另请注意,
Incidencias是一个常规数组,因此您需要引用元素 0,而不仅仅是跳过它,就好像它不存在一样。 -
尝试单步调试并查看您实际使用的内容,
var_dump($response)等。您混合了对象和数组,并且使用它们的语法各不相同(您尝试使用每个子项作为对象) -
试试
$data = json_decode($response);