Merge pull request #228 from jakzal/JsonEncodeFix
Fixed json encoding when quoted value contains trailing backslash.pull/226/merge
commit
191b8344e9
|
@ -130,7 +130,7 @@ class JsonFile
|
|||
$char = substr($json, $i, 1);
|
||||
|
||||
// Are we inside a quoted string?
|
||||
if ('"' === $char && '\\' !== $prevChar) {
|
||||
if ('"' === $char && ('\\' !== $prevChar || '\\\\' === substr($json, $i-2, 2))) {
|
||||
$outOfQuotes = !$outOfQuotes;
|
||||
} elseif (':' === $char && $outOfQuotes) {
|
||||
// Add a space after the : character
|
||||
|
|
|
@ -93,6 +93,15 @@ class JsonFileTest extends \PHPUnit_Framework_TestCase
|
|||
$this->assertJsonFormat($json, $data);
|
||||
}
|
||||
|
||||
public function testTrailingBackslash()
|
||||
{
|
||||
$data = array('Metadata\\' => 'src/');
|
||||
$json = '{
|
||||
"Metadata\\\\": "src\/"
|
||||
}';
|
||||
$this->assertJsonFormat($json, $data);
|
||||
}
|
||||
|
||||
private function expectParseException($text, $json)
|
||||
{
|
||||
try {
|
||||
|
|
Loading…
Reference in New Issue