【问题标题】:how to decode json object in laravel which is passed as form_data in postman如何在 laravel 中解码 json 对象,该对象在邮递员中作为 form_data 传递
【发布时间】:2020-12-30 21:27:05
【问题描述】:

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

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

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 是字符串,给定数组

【问题讨论】:

标签: laravel postman json-deserialization jsondecoder


【解决方案1】:

json_decode 解码JSON 字符串,您可能打算改用json_encode

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

【讨论】:

  • 理论上他甚至不需要 json_encode,response()->json 就可以了。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 2018-10-14
    • 2019-11-12
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    相关资源
    最近更新 更多