【问题标题】:how to validate json data in laravel如何在laravel中验证json数据
【发布时间】:2019-06-10 11:11:45
【问题描述】:

这是我通过邮递员发送的“规格”字段的 json 数据:

{
"specification": [
    {
      "type": [
          {
              "type": "Smartphone , Phablet , Notch Phone , Camera Phone , Selfie Phone",
              "shape": "Bar"
          }
      ],
      "basic": [
          {
              "os": "Smartphone , Phablet , Notch Phone , Camera Phone , Selfie Phone",
              "Sim": "Bar"
          }
      ]
    }
  ]
}

那么在控制器中验证规则是:

'specification' => 'required|json'

错误消息:“规范必须是有效的 JSON 字符串。”

如何在 laravel 控制器中发送和检查有效的 json?

【问题讨论】:

    标签: json laravel validation


    【解决方案1】:

    来自documentation:

    json

    验证中的字段必须是有效的JSON 字符串。

    你的数据已经被 Laravel 自己从 JSON 中解析出来了,specification 已经是一个数组,而不是一个 JSON 字符串。您可以通过将规则更改为 required|array 来检查它,您会看到它通过了。

    【讨论】:

    • @TapashDatta 也许您可以分享更多信息您发送此请求的准确程度:标头、正文等。
    【解决方案2】:

    您在此处发布的字符串不是有效的 json 字符串。有效的 json 字符串以 { 和 } 开头和结尾。所以在你的情况下应该是这样的:

    {
        "specification": [{
            "type": [{
                "type": "Smartphone , Phablet , Notch Phone , Camera Phone , Selfie Phone",
                "shape": "Bar"
            }],
            "basic": [{
                "os": "Smartphone , Phablet , Notch Phone , Camera Phone , Selfie Phone",
                "Sim": "Bar"
            }]
        }]
    }
    

    【讨论】:

      猜你喜欢
      • 2018-01-22
      • 2015-01-31
      • 2015-09-01
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 2021-10-12
      • 1970-01-01
      相关资源
      最近更新 更多