diff --git a/Decoder/JsonToFormDecoder.php b/Decoder/JsonToFormDecoder.php index 7b6b8ef46..a801fa091 100644 --- a/Decoder/JsonToFormDecoder.php +++ b/Decoder/JsonToFormDecoder.php @@ -46,7 +46,7 @@ private function xWwwFormEncodedLike(array &$data): void public function decode(string $data) { $decodedData = @json_decode($data, true); - if ($decodedData) { + if (is_array($decodedData)) { $this->xWwwFormEncodedLike($decodedData); } diff --git a/Tests/Decoder/JsonToFormDecoderTest.php b/Tests/Decoder/JsonToFormDecoderTest.php index 5133225cf..0d6360158 100644 --- a/Tests/Decoder/JsonToFormDecoderTest.php +++ b/Tests/Decoder/JsonToFormDecoderTest.php @@ -47,4 +47,12 @@ public function testDecodeWithRemovingFalseData() $this->assertEquals('3.14', $decoded['floatKey']); $this->assertEquals('bar', $decoded['stringKey']); } + + public function testDecodeStringData() + { + $decoder = new JsonToFormDecoder(); + $decoded = $decoder->decode('"foo"'); + + $this->assertSame('foo', $decoded); + } }