Bug #92473
closedTYPO3\CMS\Core\Http\JsonReponse dont allow JsonSerializable and others
0%
Description
Issue:
I use TYPO3\CMS\Core\Http\JsonReponse
in Middlewares. The constructor allow $data
to be mixed
. Even the internal function allows $data
to be of any type. But between __construct
and jsonEncode
is another function setPayload
wich only allows $data
to be type of array
. This results in the fact, that we can only respond arrays as JSON. But at least classes implementing @JsonSerializablev should be able to be responded too. Also, why isn't it possible to return other types as JSON too?
Solution:
Remove the type annotation of setPayload
. There would be no harm, because jsonEncode
already checks for conversion errors. This should also not break anything.
Before:public function setPayload(array $data = [], $encodingOptions = self::DEFAULT_JSON_FLAGS): JsonResponse
After:public function setPayload($data = [], $encodingOptions = self::DEFAULT_JSON_FLAGS): JsonResponse