PHP中API的响应转换为浮点数,需要整数

时间:2017-06-27 19:07:52

标签: php json

我正在调用外部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中显示的值。

2 个答案:

答案 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