Browse Source

Use JSON_THROW_ON_ERROR instead of custom error handling

Signed-off-by: Julius Härtl <jus@bitgrid.net>
pull/32628/head
Julius Härtl 3 years ago
parent
commit
3901a93c72
No known key found for this signature in database GPG Key ID: 4C614C6ED2CDE6DF
  1. 8
      lib/public/AppFramework/Http/JSONResponse.php
  2. 6
      tests/lib/AppFramework/Http/JSONResponseTest.php

8
lib/public/AppFramework/Http/JSONResponse.php

@ -64,13 +64,7 @@ class JSONResponse extends Response {
* @throws \Exception If data could not get encoded
*/
public function render() {
$response = json_encode($this->data, JSON_HEX_TAG);
if ($response === false) {
throw new \Exception(sprintf('Could not json_encode due to invalid ' .
'non UTF-8 characters in the array: %s', var_export($this->data, true)));
}
return $response;
return json_encode($this->data, JSON_HEX_TAG | JSON_THROW_ON_ERROR);
}
/**

6
tests/lib/AppFramework/Http/JSONResponseTest.php

@ -88,10 +88,10 @@ class JSONResponseTest extends \Test\TestCase {
$this->assertEquals($expected, $this->json->render());
}
public function testRenderWithNonUtf8Encoding() {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Could not json_encode due to invalid non UTF-8 characters in the array: array (');
$this->expectException(\JsonException::class);
$this->expectExceptionMessage('Malformed UTF-8 characters, possibly incorrectly encoded');
$params = ['test' => hex2bin('e9')];
$this->json->setData($params);

Loading…
Cancel
Save