PHP json_encode。如何显示数字字符串值而不引用?

时间:2017-11-23 03:49:38

标签: php gmp

我使用gmp_init以便我可以使用大数字。在json编码之后是否可以显示没有双引号的值?

<?php
$data = ['key' => gmp_strval(gmp_init('0x6252f8774def5e344'))];
echo json_encode($data); // {"key":"113359973681592656708"}

result:{"key":"113359973681592656708"}
expect:{"key":113359973681592656708}

我是否需要创建自定义json_encode方法?

更新1

JSON_NUMERIC_CHECK已关闭,但会降低一些精确度。

<?php
$data = ['value' => gmp_strval(gmp_init('0x6252f8774def5e344'))];
echo json_encode($data, JSON_NUMERIC_CHECK); // {"value":1.1335997368159e+20}

更新2

当我使用gmp_intval时,显示了意外的数字..失去了精度..?

<?php
$data = ['value' => gmp_intval(gmp_init('0x6252f8774def5e344'))];
echo json_encode($data); // {"value":2679509239335347012}

更新3

我现在正在制作一个公共API。此API返回大值作为数字。我正在引用这个API。

$ curl -s https://api.blockcypher.com/v1/eth/main/addrs/0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be/balance
{
  "address": "3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be",
  "total_received": 1869632244986662686850430,
  "total_sent": 1856002482088823771866944,
  "balance": 13629762897838914983486,
  "unconfirmed_balance": -201611713184000000000,
}

0 个答案:

没有答案