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

在 Laravel 5 Eloquent 中获取原始 SQL 查询的结果

在 laravel 中使用 GuzzleHttp 发送原始空 json

如何在 Laravel 中获取原始表单数据?

Laravel 5:从 $request 中检索 JSON 数组

在执行查询之前,如何从 Laravel 的查询构建器中获取原始查询字符串?

如何在执行查询之前从Laravel的查询生成器获取原始查询字符串?