/** * Encodes data into a JSON string. * Can optionally beautify the result immediately. * * @param $data mixed The data to encode. * @param bool $beautify Whether to beautify the result right away * @return string The JSON string. * @throws JSON\Exception\CtrlCharException * @throws JSON\Exception\ErrorDepthException * @throws JSON\Exception\SyntaxException */ public static function encode($data, $beautify = false) { $encoded = json_encode($data); if ($beautify) { $encoded = JSON::beautify($encoded); } switch (json_last_error()) { case JSON_ERROR_DEPTH: throw new ErrorDepthException('JSON_ERROR_DEPTH', JSON_ERROR_DEPTH); break; case JSON_ERROR_CTRL_CHAR: throw new CtrlCharException('JSON_ERROR_CTRL_CHAR', JSON_ERROR_CTRL_CHAR); break; case JSON_ERROR_SYNTAX: throw new SyntaxException('JSON_ERROR_SYNTAX', JSON_ERROR_SYNTAX); break; default: return $encoded; break; } }