Как проверить данные JSON в Laravel - PullRequest
0 голосов
/ 16 января 2019

Вот данные 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.»

как я могу отправить и проверить действительный json в контроллере laravel?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Из документации :

* 1007 JSON *

Проверяемое поле должно быть действительной Строка JSON .

Ваши данные были проанализированы из JSON самим Laravel, и specification уже является массивом , а не строкой JSON . Это можно проверить, изменив правило на required|array, и вы увидите, что оно прошло.

0 голосов
/ 16 января 2019

Строка, которую вы публикуете здесь, не является допустимой строкой 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"
        }]
    }]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...