【问题标题】:JSON string outputs a float valueJSON 字符串输出一个浮点值
【发布时间】:2010-01-08 14:11:13
【问题描述】:

我正在解析一个 JSON 响应(twitter api - 光标值),当我用 PHP 输出它时,应该是一个字符串值似乎是一个双精度值。

知道如何获得真正的字符串值吗?

【问题讨论】:

  • 发布有问题的响应、php 代码和显示的结果会有所帮助
  • 你确定这不是一个双精度值吗?我的意思是如果字符串不是数字,则将字符串转换为双精度对我来说听起来很奇怪...... JSON 数据是什么?
  • 好吧,也许我错了。 json 看起来像: ...,"next_cursor":1324265698590457809}
  • 当我回显它时,它显示类似于 1.3227481350289E+18
  • 嗯,它绝对不是一个字符串,我猜输出是这样的,因为数字很大。顺便说一句,需要在哪里输出这个数字?它对用户没有用,不是吗?

标签: php json twitter


【解决方案1】:

光标值太大,无法使用 json_decode 处理 32 位 PHP 安装。有人给我发了preg_replace( '/next_cursor":(\d+)/', 'next_cursor":"\1"', $json );。在 json_decode 之前运行它将在转换之前将 json int 转换为字符串。

更新: Twitter 现在提供字符串而不是整数的 next_cursor_str 值,因此不再需要使用 preg_replace。

【讨论】:

【解决方案2】:

要将浮点数(或任何类型的变量)转换为字符串,您可以使用以下方法之一:

$value = 5.234;

// Using type casting
$str_value = (string)$value;

// Using strval()
$str_value = strval($value);

// Using concatenation to a string
$str_value = $value . '';

// Using sprintf
$str_value = sprintf("%s", $value);

// Using setType
setType($value, 'string');
$str_value = $value;

【讨论】:

    猜你喜欢
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多