* @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): string { $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): array { 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): bool { json_decode($string); return json_last_error() == JSON_ERROR_NONE; } }