You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向Laravel API路由发送JSON数据时遭遇JSON验证错误

解决Laravel中withdraws字段验证提示“必须是有效的JSON字符串”的问题

以下是几种常见的排查和解决方法:

  • 检查前端数据格式
    若前端直接传递数组/对象(比如JS中的{key: value}或[]),未转成JSON字符串,Laravel会将其解析为普通表单参数而非JSON字符串。此时需在前端把数据转为JSON字符串后再发送,比如JS中使用JSON.stringify(withdrawsData)处理。

  • 调整请求头设置
    若前端发送JSON格式请求体,务必确保请求头的Content-Type设为application/json。Laravel会自动解析JSON请求体;如果是表单提交(application/x-www-form-urlencoded或multipart/form-data),要保证传递的JSON字符串没有转义错误。

  • 修改验证规则(若实际需求是数组)
    如果你本来就需要接收数组类型的withdraws数据,没必要用json验证规则,直接换成array规则,还能结合array:*规则做更细致的验证,示例:

    return [
        'mobile' => ['required', 'string'],
        'withdraws' => 'required|array',
        // 可选:若数组内是对象,可验证每个元素的字段
        'withdraws.*.amount' => 'required|numeric',
    ];
    
  • 确认数据传递方式
    如果是表单提交(比如POST表单),要保证withdraws字段的值是标准JSON字符串,比如输入框内容为[{"amount":100}]这类格式,而非直接写数组结构。

内容的提问来源于stack exchange,提问作者hossein ir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 09:53:14