
JSON 오류를 처리할 때 json_last_error() 함수는 오류 코드를 반환합니다. 이 오류 코드는 PHP의 json_last_error_msg() 함수를 사용하여 오류 메시지를 얻을 수 있습니다.
json_last_error() 함수가 반환하는 오류 코드는 다음과 같습니다.
- JSON_ERROR_DEPTH: JSON 객체의 최대 깊이를 초과했습니다.
- JSON_ERROR_STATE_MISMATCH: JSON 객체의 상태가 일치하지 않습니다.
- JSON_ERROR_CTRL_CHAR: 제어 문자를 찾을 수 없습니다.
- JSON_ERROR_SYNTAX: JSON 객체의 문법이 잘못되었습니다.
- JSON_ERROR_UTF8: UTF-8 인코딩 오류가 발생했습니다.
- JSON_ERROR_UTF16: UTF-16 인코딩 오류가 발생했습니다.
- JSON_ERROR_UTF32: UTF-32 인코딩 오류가 발생했습니다.
이러한 오류 코드를 사용하여 오류를 처리할 수 있습니다. 예를 들어, JSON_ERROR_DEPTH 오류가 발생하면, JSON 객체의 깊이를 제한하거나, JSON_ERROR_SYNTAX 오류가 발생하면, JSON 객체의 문법을 확인하는 등의 처리를 할 수 있습니다.
#hostingforum.kr
php
$json = '{"key": "value"}';
$json_decode = json_decode($json);
if (json_last_error() == JSON_ERROR_DEPTH) {
echo "JSON 객체의 깊이를 초과했습니다.";
} elseif (json_last_error() == JSON_ERROR_STATE_MISMATCH) {
echo "JSON 객체의 상태가 일치하지 않습니다.";
} elseif (json_last_error() == JSON_ERROR_CTRL_CHAR) {
echo "제어 문자를 찾을 수 없습니다.";
} elseif (json_last_error() == JSON_ERROR_SYNTAX) {
echo "JSON 객체의 문법이 잘못되었습니다.";
} elseif (json_last_error() == JSON_ERROR_UTF8) {
echo "UTF-8 인코딩 오류가 발생했습니다.";
} elseif (json_last_error() == JSON_ERROR_UTF16) {
echo "UTF-16 인코딩 오류가 발생했습니다.";
} elseif (json_last_error() == JSON_ERROR_UTF32) {
echo "UTF-32 인코딩 오류가 발생했습니다.";
} else {
echo "알 수 없는 오류가 발생했습니다.";
}
2025-07-29 08:28