如何在laravel中验证json数据

Posted

技术标签:

【中文标题】如何在laravel中验证json数据【英文标题】:how to validate json data in laravel 【发布时间】: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?

【问题讨论】:

【参考方案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"
        ]
    ]

【讨论】:

以上是关于如何在laravel中验证json数据的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 中以 json 数据的形式从验证器发出响应

laravel用json格式提交数据,验证层怎么写

laravel用json格式提交数据,验证层怎么写

Laravel 查询构建器:如何访问 JSON 键/值对

Laravel 验证:必须是带有“json”规则的有效 JSON 字符串

如何验证 json 对象中的请求 - 使用 laravel