diff --git a/src/Aviat/Ion/Json.php b/src/Aviat/Ion/Json.php new file mode 100644 index 00000000..831f941e --- /dev/null +++ b/src/Aviat/Ion/Json.php @@ -0,0 +1,119 @@ +isJson(); + } + + /** + * Call the json error functions to check for errors encoding/decoding + * + * @throws JsonException + */ + protected static function check_json_error() + { + $constant_map = [ + JSON_ERROR_NONE => 'JSON_ERROR_NONE', + JSON_ERROR_DEPTH => 'JSON_ERROR_DEPTH', + JSON_ERROR_STATE_MISMATCH => 'JSON_ERROR_STATE_MISMATCH', + JSON_ERROR_CTRL_CHAR => 'JSON_ERROR_CTRL_CHAR', + JSON_ERROR_SYNTAX => 'JSON_ERROR_SYNTAX', + JSON_ERROR_UTF8 => 'JSON_ERROR_UTF8', + JSON_ERROR_RECURSION => 'JSON_ERROR_RECURSION', + JSON_ERROR_INF_OR_NAN => 'JSON_ERROR_INF_OR_NAN', + JSON_ERROR_UNSUPPORTED_TYPE => 'JSON_ERROR_UNSUPPORTED_TYPE' + ]; + + $error = json_last_error(); + $message = json_last_error_msg(); + + if (\JSON_ERROR_NONE !== $error) + { + throw new JsonException("{$constant_map[$error]} - {$message}", $error); + } + } +} +// End of JSON.php \ No newline at end of file diff --git a/src/Aviat/Ion/JsonException.php b/src/Aviat/Ion/JsonException.php new file mode 100644 index 00000000..5be77c4f --- /dev/null +++ b/src/Aviat/Ion/JsonException.php @@ -0,0 +1,18 @@ +