【发布时间】:2018-09-10 02:54:02
【问题描述】:
我正在使用 curl 在 PHP 中发出 JSON 请求。我已将响应存储在一个名为 $registerCompany 的变量中并将其打印在屏幕上以查看返回的内容,通过打印我的变量得到以下响应
{
resultCode: "duplicate",
result: {
isValid: true,
referenceKey: "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx"
},
success: false
}
我知道这是一个对象,当我尝试获取其属性时,例如 $registerCompany->resultCode 我收到以下错误:
试图获取非对象的属性'resultCode'
这里有什么问题,谁能帮忙
这是我的 PHP 代码
function enquiry_company($data) {
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "hidden",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
"content-type: application/json",
"x-api-key: hidden"
],
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_SSL_VERIFYPEER => 0,
]);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
$api_data = [
"identityNumber" => 123456789,
"commercialRecordNumber" => 123456789,
"commercialRecordIssueDateHijri" => 01-01-2000,
"phoneNumber" => 00000000000,
"extensionNumber" => 0,
"emailAddress" => mail@mail.com,
"managerName" => 'Manager',
"managerPhoneNumber" => 000000000,
"managerMobileNumber" => 000000000,
];
$registerCompany = enquiry_company($api_data);
echo $registerCompany;
$registerCompany = json_decode($registerCompany, true);
$registerCompany = (object) $registerCompany;
echo $registerCompany->resultCode;
谢谢
【问题讨论】:
-
我看到的主要问题是它不是 JSON(没有引用键)。您能否展示您的实际代码,包括您如何“打印变量”
-
@Phil 我现在已经添加了完整的代码
-
只需将其更改为
$registerCompany = json_decode($registerCompany);而不使用true,因为它明确要求将 JSON 解码为 数组 -
下次尝试阅读手册,了解每个参数的作用~php.net/manual/function.json-decode.php
-
将
registerCompany->resultCode;更改为registerCompany['resultCode']
标签: php json string object curl