【问题标题】:How i can convert from JSON data string to float or number type in PHP我如何在 PHP 中将 JSON 数据字符串转换为浮点数或数字类型
【发布时间】:2018-04-09 04:09:37
【问题描述】:

我正在尝试做出 JSON 响应,但响应数据有问题

{"data":{"balance":"1000.21","currency":"CNY"},"status":{"code":"0","message":"Success","datetime":"2018-04-09T12:06:20+08:00"}}

我需要将余额显示为浮点数、数字类型,但它显示为字符串 所以这是我需要的正确数据

{"data":{"balance": 1000.21,"currency":"CNY"},"status":{"code":"0","message":"Success","datetime":"2018-04-09T12:06:20+08:00"}}

我的代码

response->setStatusCode(200, 'OK')->sendHeaders();
    $response->setContentType('application/json', 'utf-8');
    $resData = array(
        'data' => [
            'balance' => $user->balance,
            'currency' => $user->currencyCode
        ],
        'status' => [
            'code' => '0',
            'message' => 'Success',
            'datetime' => $this->getDateTime()
        ]
    );
    $response->setJsonContent($resData);
    return $response;

【问题讨论】:

  • 如果你知道某物是一个浮点数,只需解析它。
  • 'balance' => (float) $user->balance
  • 请看我现在的数据是 "balance":"1000.21" 所以我需要像 "balance": 1000.21 并且我从来没有在我的代码中放任何像 '', ''' 这样的东西我的代码错了吗?
  • 您确定 $user->balance 返回的是浮点数且没有字符串?
  • @JunheeShin 非常感谢,我已经修好了

标签: php json phalcon


【解决方案1】:
<?php
$data = '{"data":{"balance":"1000.21","currency":"CNY"},"status":{"code":"0","message":"Success","datetime":"2018-04-09T12:06:20+08:00"}}';
//you can loop through the whole data and then convert again to json
$data = json_decode($data,true);
$response = array();
$response['data'] = array();
$response['status'] = $data['status'];
foreach($data as $array){
    $array['balance'] = (float)$array;
    $response['data'][] = $array;
}
print_r(json_encode($data,true));

?>

【讨论】:

    猜你喜欢
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多