* @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 { /** * @var LoggerHelper */ private $loggerHelper; /** * JsonHelper constructor. * * @param LoggerHelper $loggerHelper */ public function __construct(LoggerHelper $loggerHelper) { $this->loggerHelper = $loggerHelper; } /** * 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; } $this->loggerHelper->addLog('[PS_METRICS] Unable to encode Json', 3); return ''; } /** * Check if the json is valid and returns an empty data if not * * @param mixed $json * @param bool $assoc * * @return array $data */ public function jsonDecode($json, $assoc = true) { $data = json_decode($json, $assoc); if (JSON_ERROR_NONE === json_last_error()) { return $data; } $this->loggerHelper->addLog('[PS_METRICS] Unable to decode Json', 3); return []; } }