如何在Laravel中验证JSON数据

时间:2019-01-16 11:12:38

标签: json laravel validation

这是我通过邮递员发送的“规范”字段的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?

2 个答案:

答案 0 :(得分:1)

来自documentation

  

json

     

正在验证的字段必须是有效的 JSON字符串

您的数据已由Laravel本身从JSON解析,并且specification已经是一个 array ,而不是JSON string 。您可以通过将规则更改为required|array来进行检查,然后看看它会通过。

答案 1 :(得分:0)

您要在此处发布的字符串不是有效的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"
        }]
    }]
}