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