1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
<?php
/*
* This file is part of the ICanBoogie package.
*
* (c) Olivier Laviale <olivier.laviale@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace ICanBoogie\Validate\Validator;
use ICanBoogie\Validate\Context;
/**
* Validates that a value is a JSON string.
*/
class JSON extends AbstractValidator
{
const ALIAS = 'json';
const DEFAULT_MESSAGE = 'should be a valid JSON string';
/**
* @inheritdoc
*/
public function validate($value, Context $context)
{
if (!is_string($value))
{
return false;
}
json_decode($value);
return JSON_ERROR_NONE === json_last_error();
}
}