JsonResponse选项参数

JsonResponse选项参数,json,laravel,Json,Laravel,在控制器中,我有: return response()->json( [ 'number' => (float)8 ], Response::HTTP_OK, [], JSON_PRESERVE_ZERO_FRACTION ); 这是输出: { "number": 8 } 是否可以获得8.0? 这项工作很好: json_encode(['number' => (float)8],JSON_PRESERVE_ZE

在控制器中,我有:

return response()->json(
    [
        'number' => (float)8
    ],
    Response::HTTP_OK,
    [],
    JSON_PRESERVE_ZERO_FRACTION
);
这是输出:

{
    "number": 8
}
是否可以获得
8.0
? 这项工作很好:

json_encode(['number' => (float)8],JSON_PRESERVE_ZERO_FRACTION);
更新: 当我将
response()->json
从上面设置为
$variable
,然后
打印($variable)
时,我得到以下结果:

(所以它看起来很有效,但在浏览器中使用return时,我得到的仍然是8,而不是8.0)

使用:


如果数字是以字符串形式出现的,请使用
(float)$stringNumber
而不是
$stringNumber

问题是我从外部api获取此值。它总是以字符串的形式返回,可以得到示例5.000005,我不想舍入it@BolekLolek如果它总是一个简单的字符串,比如
5.000005
,只需序列化该字符串而不进行任何转换。是的,但是当我只得到5时,我需要输出5.0。因此,我希望在代码中不做大的更改(条件是检查它是否有点)。@BolekLolek在本例中,首先使用类似于
if((int)$string==(float)$string)
的内容检查它是否为整数,并仅对整数进行转换。
Illuminate\Http\JsonResponse Object
(
    [data:protected] => {"number":8.0}
    [callback:protected] => 
    [encodingOptions:protected] => 1024
    [headers] => Symfony\Component\HttpFoundation\ResponseHeaderBag Object
        (
            [computedCacheControl:protected] => Array
                (
                    [no-cache] => 1
                    [private] => 1
                )

            [cookies:protected] => Array
                (
                )

            [headerNames:protected] => Array
                (
                    [cache-control] => Cache-Control
                    [date] => Date
                    [content-type] => Content-Type
                )

            [headers:protected] => Array
                (
                    [cache-control] => Array
                        (
                            [0] => no-cache, private
                        )

                    [date] => Array
                        (
                            [0] => Thu, 08 Feb 2018 11:27:34 GMT
                        )

                    [content-type] => Array
                        (
                            [0] => application/json
                        )

                )

            [cacheControl:protected] => Array
                (
                )

        )

    [content:protected] => {"number":8.0}
    [version:protected] => 1.0
    [statusCode:protected] => 200
    [statusText:protected] => OK
    [charset:protected] => 
    [original] => Array
        (
            [number] => 8
        )

    [exception] => 
)
json_encode(['number' => number_format(8, 1)]);