순환 JSON 문자열화

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 JavaScript 를 사용하여 순환 참조 (circular references) 를 포함하는 JSON 객체를 직렬화하는 방법을 살펴봅니다. 사용자 정의 replacer 함수와 WeakSet을 사용하여 순환 참조를 감지하고 생략합니다. 이 랩을 마치면 JavaScript 에서 순환 데이터 구조를 처리하고 JSON 형식으로 직렬화하는 방법에 대한 이해도가 높아질 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 100%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

순환 JSON 문자열화 방법

순환 참조를 포함하는 JSON 객체를 문자열화하려면 다음 단계를 따르세요.

  1. 터미널/SSH 를 열고 node를 입력하여 코딩 연습을 시작합니다.
  2. WeakSet.prototype.add()WeakSet.prototype.has()를 사용하여 확인된 값을 저장하고 검사하기 위해 WeakSet을 생성합니다.
  3. seen에 이미 있는 값을 생략하고 필요한 경우 새 값을 추가하는 사용자 정의 replacer 함수와 함께 JSON.stringify()를 사용합니다.
  4. ⚠️ 주의: 이 함수는 순환 참조를 찾아 제거하므로 직렬화된 JSON 에서 순환 데이터 손실이 발생합니다.

stringifyCircularJSON 함수의 코드는 다음과 같습니다.

const stringifyCircularJSON = (obj) => {
  const seen = new WeakSet();
  return JSON.stringify(obj, (key, value) => {
    if (value !== null && typeof value === "object") {
      if (seen.has(value)) return;
      seen.add(value);
    }
    return value;
  });
};

함수를 테스트하려면 순환 참조가 있는 객체를 생성하고 stringifyCircularJSON을 호출하면 됩니다.

const obj = { n: 42 };
obj.obj = obj;
stringifyCircularJSON(obj); // '{"n": 42}'

요약

축하합니다! 순환 JSON 문자열화 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.