我正在调用外部API并成功获取结果。但是,导致数值的一个特定字段将变为浮点数。
在API调用之后,我正在进行此操作:
print_r($response);
// Decode the response
$responseData = json_decode($response, TRUE);
$ids= $responseData[0][id];
echo $ids;
我得到的结果如下:
[{"id":629378047925027252,"name":"Pizza Hut"}]
但对于特定id
部分,结果为6.2937804792503E+17
。
我想检索上面的回复id
中显示的值。
答案 0 :(得分:4)
json_decode()
默认情况下将平台(PHP_INT_MAX
)太大的整数转换为浮点数。您可以将它们转换为JSON_BIGINT_AS_STRING
的字符串。请参阅options parameter:
$responseData = json_decode($response, true, 512, JSON_BIGINT_AS_STRING);
由于某些原因,传递null
作为第三个参数并不强制它使用默认值(512),所以我传递了512。
答案 1 :(得分:1)
尝试在json_decode选项参数中使用JSON_BIGINT_AS_STRING 见http://php.net/manual/en/function.json-decode.php