ES6 Maps용 JSON.stringify
JavaScript 객체에서 ES6 Maps로 마이그레이션할 때 JSON.stringify 지원이 필수적입니다. 이 문서에서는 JSON 전송을 위해 지도를 직렬화하는 문제를 다룹니다.
JSON.stringify 대체자 활용
JSON.stringify는 기능을 향상할 수 있는 두 번째 인수인 대체자를 제공합니다. . Map 객체를 처리하는 대체 함수를 정의합니다.
function replacer(key, value) { if(value instanceof Map) { return { dataType: 'Map', value: Array.from(value.entries()), }; } else { return value; } }
JSON.parse Reviver를 사용한 역직렬화
마찬가지로 JSON.parse에는 객체 생성을 사용자 정의하기 위한 부활 인수도 있습니다. ~ 동안 역직렬화:
function reviver(key, value) { if(typeof value === 'object' && value !== null) { if (value.dataType === 'Map') { return new Map(value.value); } } return value; }
사용
다음 기능을 사용하여 ES6 맵을 직렬화 및 역직렬화하려면:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!