如何解码laravel中的json对象,在postman中作为form_data传递

问题描述

第一张图片中,您可以看到我如何在 order_details 参数中将 json 对象作为表单数据发送

enter image description here

在第二张图片中,我在 Laravel 7 中解码时收到响应

enter image description here

public function makeOrder(Request $request)
{
    $validator = Validator::make($request->all(),[
        'table_id' => 'required','date' => 'required','time_slot' => 'required|string','product_ids' => 'required|array','total_bill' => 'required'
    ]);

    if ($validator->fails()) {
        return response()->json(['error' => $validator->messages()->first(),'code' => 404],404);
    }

    return response()->json(['order' => json_decode($request->order_details),'code' => 200],200);
}

我在解码 json 数据时遇到错误

json_decode() 期望参数 1 是字符串,给定数组

解决方法

json_decode 解码 JSON 字符串,您可能打算使用 json_encode 代替:

return response()->json(['order' => json_encode($request->order_details),'code' => 200],200);
,

请求正文中的订单详情是一个数组,访问第一个索引并在响应中返回

return response([
    'order' => json_decode($request->order_details[0]),'code' => 200,]);

这反过来又在邮递员中给出了这种结构,我认为这是您想要的

enter image description here