使laravel报告格式错误的JSON

时间:2014-08-07 14:37:14

标签: json exception laravel

有没有办法让laravel报告输入格式错误的JSON?现在控制器只是没有收到任何数据,如果内容类型是json请求,我希望它引发异常

1 个答案:

答案 0 :(得分:2)

在过滤器中执行此操作:

App::before(function ($request)
{
    if ( ! str_contains($request->getContentType(), 'json')) return;

    json_decode($request->getContent());

    if (json_last_error() != JSON_ERROR_NONE)
    {
        throw new Exception('Malformed JSON.');
    }
});

如果您在没有内容时不希望它失败,请使用:

App::before(function ($request)
{
    if ( ! ($content = $request->getContent())) return;

    if ( ! str_contains($request->getContentType(), 'json')) return;

    json_decode($content);

    if (json_last_error() != JSON_ERROR_NONE)
    {
        throw new Exception('Malformed JSON.');
    }
});