如何在 Laravel 5 中获取原始 json 请求有效负载?
Posted
技术标签:
【中文标题】如何在 Laravel 5 中获取原始 json 请求有效负载?【英文标题】:How to get primitive json request payload in Laravel 5? 【发布时间】:2017-05-18 02:18:32 【问题描述】:假设这是一个请求的负载:
name : 'John', age: 42
您可以通过Request::all()
获取所有参数。
如果负载是true
或42
之类的原始类型,我如何正确获取请求负载?
Request::getContent()
将它们作为字符串接收,我希望它们也是正确的类型。
【问题讨论】:
【参考方案1】:您可以使用json_decode
将原始 json 有效负载解码为数组:
Route::post('/request', function ()
$payLoad = json_decode(request()->getContent(), true);
dd($payLoad['name']);
);
你应该得到
John
或者可以使用json_decode
从查询参数或发布数据中解码您的有效负载:
Route::get('/primitive', function ()
$payLoad = json_decode(request()->get('payload'));
dd($payLoad);
);
击球:
http://app.dev/primitive?payload=%20%22name%22:%20%22John%22,%20%22age%22:%2042,%20%22male%22:%20true%20
你应该得到
【讨论】:
有效负载不是键值对。只是 POST 请求正文中的一个 json 值。我可以使用json_decode(request()->getContent())
。谢谢
我的解决方案也应该可以工作:***.com/questions/2690654/…以上是关于如何在 Laravel 5 中获取原始 json 请求有效负载?的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 5 Eloquent 中获取原始 SQL 查询的结果
在 laravel 中使用 GuzzleHttp 发送原始空 json
Laravel 5:从 $request 中检索 JSON 数组