* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\Ps_metrics\Helper; class JsonHelper { /** * Encode the data to json and check and force the return to empty string if false * * @param mixed $data * * @return string */ public function jsonEncode($data) { $json = \json_encode($data); if (empty($data)) { $json = \json_encode($data, \JSON_FORCE_OBJECT); } if (\false !== $json) { return $json; } return ''; } /** * Check if the json is valid and returns an empty data if not * * @param string|false $json * @param bool $assoc * * @return array $data */ public function jsonDecode($json, bool $assoc = \true) { if ($json) { $data = \json_decode($json, $assoc); if (\JSON_ERROR_NONE === \json_last_error()) { return $data; } } return []; } /** * Check if string is JSON * * @param string $string * * @return bool */ public function isJson(string $string) { \json_decode($string); return \json_last_error() == \JSON_ERROR_NONE; } }