JSON 처리를 위해 ES6 맵을 직렬화하는 방법
ES6 객체에서 맵으로 전환할 때 JSON.stringify를 직접 수행할 수 없음 지도가 방해가 될 수 있습니다. 이 기사에서는 JSON.stringify와 JSON.parse의 두 번째 인수인 교체 및 부활 기능을 각각 사용하여 이 문제에 대한 솔루션을 자세히 살펴봅니다.
사용자 정의 대체 기능 및 부활 기능
지도에 대한 지원을 추가하기 위해 맞춤 대체 기능과 부활 기능을 생성할 수 있습니다. 이러한 함수는 JSON과의 변환을 처리합니다.
function replacer(key, value) { if (value instanceof Map) { return { dataType: 'Map', value: Array.from(value.entries()), // or with spread: value: [...value] }; } else { return value; } }
function reviver(key, value) { if (typeof value === 'object' && value !== null) { if (value.dataType === 'Map') { return new Map(value.value); } } return value; }
사용
맞춤 함수를 사용하면 지도 직렬화 및 역직렬화가 간단해집니다.
const originalValue = new Map([['a', 1]]); const str = JSON.stringify(originalValue, replacer); const newValue = JSON.parse(str, reviver); console.log(originalValue, newValue);
깊은 중첩
이 기술은 맵, 배열 및 개체로 구성된 깊게 중첩된 구조로 확장됩니다.
const originalValue = [ new Map([['a', { b: { c: new Map([['d', 'text']]) } }]]) ]; const str = JSON.stringify(originalValue, replacer); const newValue = JSON.parse(str, reviver); console.log(originalValue, newValue);
위 내용은 JSON.stringify 및 JSON.parse를 사용하여 ES6 맵을 직렬화 및 역직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!