在 Laravel 5.5 中
Route::get('/test2', function (){
$data = (object) [];
return response()->json($data);
});
Run Code Online (Sandbox Code Playgroud)
它总是返回[]而不是{}.
另一个代码:
Route::get('/test2', function (){
$data = (object) [];
return json_encode($data);
});
Run Code Online (Sandbox Code Playgroud)
它正确返回 {}
我想使用response()->json()helper 返回空对象而不是空数组,这可能吗?
还有一个例子,灵感来自 Hamid Mohayeji 的回答:
return \response()->json(null);
Run Code Online (Sandbox Code Playgroud)
无需实例化stdClass(尽管需要内存分配)。
这适用于 Laravel 5.6
Route::get('/test2', function (){
$data = (object) [];
return response()->json($data, 200, [], JSON_FORCE_OBJECT);
});
Run Code Online (Sandbox Code Playgroud)
当您返回时response()->json($data),它会返回一个JsonResponse包含$data在data字段中的对象。因此,当您收到此响应时,您将获得具有相同格式(对象)的数据。
JsonResponse json(字符串|数组$data = [], int $status = 200, 数组$headers = [], int $options)
当您返回 时json_encode($data),它将解析$data并返回一个字符串:"{}"。只有解码"{}",它才会再次成为对象。
字符串 json_encode (混合 $value [, int $options = 0 [, int $深度 = 512 ]] )
| 归档时间: |
|
| 查看次数: |
16082 次 |
| 最近记录: |