如何在 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()获取所有参数。

如果负载是true42 之类的原始类型,我如何正确获取请求负载?

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 请求有效负载?的主要内容,如果未能解决你的问题,请参考以下文章