我如何很好地解码Laravel失败的工作JSON

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何很好地解码Laravel失败的工作JSON相关的知识,希望对你有一定的参考价值。

我应该如何解码和“美化”Laravel失败的工作有效载荷?

在我的数据库表中failed_jobs我有列有效负载,如下所示:

{"job":"Illuminate\Queue\CallQueuedHandler@call","data":{"commandName":"App\Jobs\createHostingOncPanel","command":"O:30:"App\Jobs\createHostingOncPanel":7:{s:10:"u0000*u0000orderNo";i:11;s:18:"u0000*u0000hostingPackages";s:45:"[{"domainName":"qwddqwd.io","hostingType":1}]";s:7:"u0000*u0000user";O:45:"Illuminate\Contracts\Database\ModelIdentifier":2:{s:5:"class";s:8:"App\User";s:2:"id";i:1;}s:10:"connection";N;s:5:"queue";N;s:5:"delay";N;s:6:"u0000*u0000job";N;}"}}

想把字符串json解码成可读的东西。

这是什么样的格式? :)

PS:这是一个Laravel 5.2版本

答案

从failed_jobs表中读取

json_decode来自failed_jobs表的有效负载

$jsonpayload = json_decode($payload);

反序列化有效负载命令

$data = unserialize($jsonpayload->data->command);
print_r($data);//This is the data passed to queue
另一答案

我建议处理事件,然后以自己的方式存储您需要的任何数据。您可以使用失败的作业事件来捕获所有失败的作业:https://laravel.com/docs/master/queues#failed-job-events

或者您可以在作业本身使用failed()函数:https://laravel.com/docs/master/queues#dealing-with-failed-jobs

否则,Marc的评论似乎对我有意义。

另一答案

试试这个

$j = AppModelsJobs::select('payload')->get();
$aw = json_decode($j[0]->payload)->data->command;
$cm = unserialize($aw);
dd($cm->payload);

以上是关于我如何很好地解码Laravel失败的工作JSON的主要内容,如果未能解决你的问题,请参考以下文章

如何在关系表laravel 5.8中解码Json数据

如何在 laravel 中解码 Json 对象并在 laravel 中应用 foreach 循环

如何在laravel刀片中从json解码中回显键名和键值

如何在 Laravel 中解码 JSON 对象

BizTalk 中的 FHIR JSON 到 XML 解码

响应式表格不适用于 laravel 布局