자바스크립트에서 JSON 데이터의 예외 처리 방법

JSON(JavaScript Object Notation)은 데이터를 효율적이고 간결하게 표현하기 위한 형식입니다. 자바스크립트에서는 네이티브 JSON 객체를 제공하여 간단하게 JSON 데이터를 다룰 수 있습니다. 하지만, JSON 데이터의 형식이 올바르지 않거나 예상과 다른 값이 주어진 경우 예외가 발생할 수 있습니다. 이번 블로그 포스트에서는 자바스크립트에서 JSON 데이터의 예외 처리 방법에 대해 알아보겠습니다.

1. JSON.parse()의 예외 처리

JSON.parse() 메서드는 문자열로 표현된 JSON 데이터를 자바스크립트 객체로 변환합니다. 이 때, 변환 과정에서 예외가 발생할 수 있습니다. 가장 일반적인 예외는 JSON 데이터가 유효하지 않을 경우 발생합니다. 예를 들어, 잘못된 JSON 형식, 예상하지 못한 값, 혹은 중복되는 키 등이 포함된 경우 JSON.parse()는 SyntaxError 예외를 던집니다.

try {
  const jsonString = '{"name": "John", "age": 30,}';
  const jsonObject = JSON.parse(jsonString);
  console.log(jsonObject);
} catch (error) {
  console.error("JSON 데이터를 파싱하는 동안 예외가 발생했습니다.");
  console.error(error);
}

위의 예제에서는 유효하지 않은 JSON 데이터를 JSON.parse()로 변환하려고 시도합니다. 예외가 발생하면 catch 블록에서 에러를 처리하고 적절한 에러 메시지를 출력합니다.

2. JSON.stringify()의 예외 처리

JSON.stringify() 메서드는 자바스크립트 객체를 JSON 형식의 문자열로 변환합니다. 이 때, 변환 과정에서 예외가 발생할 수 있습니다. 가장 일반적인 예외는 JSON.stringify()에 변환할 수 없는 값, 순환 참조, 함수 등이 포함된 경우 TypeError 예외를 던집니다.

try {
  const obj = {
    name: "John",
    age: 30,
    getInfo: function() {
      return `${this.name} is ${this.age} years old.`;
    }
  };
  
  const jsonString = JSON.stringify(obj);
  console.log(jsonString);
} catch (error) {
  console.error("자바스크립트 객체를 JSON 문자열로 변환하는 동안 예외가 발생했습니다.");
  console.error(error);
}

위의 예제에서는 함수가 포함된 자바스크립트 객체를 JSON.stringify()로 변환하려고 시도합니다. 예외가 발생하면 catch 블록에서 에러를 처리하고 적절한 에러 메시지를 출력합니다.

3. JSON 데이터의 특정 예외 처리

JSON 데이터에서 특정한 예외를 처리해야 하는 경우, try-catch 문을 이용하여 예외를 잡을 수 있습니다. 예를 들어, JSON 데이터에 존재하지 않는 키를 접근하려는 경우 TypeError가 발생합니다. 이때 try-catch 문을 사용하여 예외를 잡고 처리할 수 있습니다.

const jsonString = '{"name": "John", "age": 30}';
try {
  const jsonObject = JSON.parse(jsonString);
  const occupation = jsonObject.occupation; // 존재하지 않는 키에 접근
  console.log(occupation);
} catch (error) {
  if (error instanceof TypeError) {
    console.error("존재하지 않는 키에 접근하려고 했습니다.");
  } else {
    console.error("JSON 데이터를 처리하는 동안 예외가 발생했습니다.");
  }
  console.error(error);
}

위의 예제에서는 존재하지 않는 키에 접근하는 경우 예외를 처리하기 위해 try-catch 문을 사용합니다. 만약 TypeError가 발생한 경우, “존재하지 않는 키에 접근하려고 했습니다.”라는 에러 메시지를 출력합니다.

결론

자바스크립트에서 JSON 데이터를 다룰 때는 JSON.parse()와 JSON.stringify() 메서드를 사용하여 손쉽게 변환할 수 있습니다. 그러나 예외 상황에 대해 적절한 예외 처리를 수행하는 것은 중요합니다. JSON 데이터의 유효성을 검증하고 변환 과정에서 예외가 발생할 수 있는 부분을 주의하여 예외 처리를 적절하게 수행하시기 바랍니다.