简体   繁体   中英

How i can convert from JSON data string to float or number type in PHP

I'm trying to make JSON response but i have problem in response data

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

I need balance show as float, number type but it show as string so this is correct data what i need

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

My Code

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;
<?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));

?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM