Add detection for extra commas in arrays
parent
6f1dab6233
commit
f5aa3e6c79
|
@ -122,7 +122,7 @@ class JsonFile
|
|||
case JSON_ERROR_SYNTAX:
|
||||
$msg = 'Syntax error';
|
||||
$charOffset = 0;
|
||||
if (preg_match('#["}\]]\s*(,)\s*\}#', $json, $match, PREG_OFFSET_CAPTURE)) {
|
||||
if (preg_match('#["}\]]\s*(,)\s*[}\]]#', $json, $match, PREG_OFFSET_CAPTURE)) {
|
||||
$msg .= ', extra comma';
|
||||
} elseif (preg_match('#(["}\]]) *\r?\n *"#', $json, $match, PREG_OFFSET_CAPTURE)) {
|
||||
$msg .= ', missing comma';
|
||||
|
|
|
@ -24,6 +24,16 @@ class JsonFileTest extends \PHPUnit_Framework_TestCase
|
|||
$this->expectParseException('extra comma on line 2, char 21', $json);
|
||||
}
|
||||
|
||||
public function testParseErrorDetectExtraCommaInArray()
|
||||
{
|
||||
$json = '{
|
||||
"foo": [
|
||||
"bar",
|
||||
]
|
||||
}';
|
||||
$this->expectParseException('extra comma on line 3, char 18', $json);
|
||||
}
|
||||
|
||||
public function testParseErrorDetectSingleQuotes()
|
||||
{
|
||||
$json = '{
|
||||
|
|
Loading…
Reference in New Issue