>웹 프론트엔드 >JS 튜토리얼 >`eval`을 사용하지 않고 완화된 JSON을 안전하게 구문 분석하는 방법은 무엇입니까?

`eval`을 사용하지 않고 완화된 JSON을 안전하게 구문 분석하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-31 05:44:02601검색

How to Safely Parse Relaxed JSON Without Using `eval`?

완화된 JSON을 안전하게 구문 분석

잠재적으로 위험한 평가 기능을 사용하지 않고 "완화된" JSON을 구문 분석하는 것은 JSON 데이터 작업 시 흔히 발생하는 문제입니다. 엄격한 JSON 구문을 준수하지 않을 수 있습니다. JSON.parse()에서는 키를 따옴표로 묶어야 하지만 일부 시나리오에서는 편의상 또는 레거시 이유로 따옴표가 없는 키로 JSON을 구문 분석해야 합니다.

"완화된" JSON을 안전하게 처리하는 한 가지 접근 방식은 JSON을 구문 분석하기 전에 삭제하는 것입니다. 정규식 바꾸기를 사용하면 나머지 JSON 구조를 유지하면서 따옴표가 없는 키를 따옴표로 변환할 수 있습니다.

var badJson = "{muh: 2}";
var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": ');

이 예에서 정규식은 선택적 작은따옴표 또는 큰따옴표로 묶인 따옴표가 없는 키를 검색합니다. , 그 뒤에 콜론이 옵니다. 그런 다음 일치 항목을 올바른 인용 키 구문으로 대체하여 이제 JSON 문자열이 적절한 JSON 형식을 충족하는지 확인합니다.

JSON 문자열이 삭제되면 JSON.parse()를 사용하여 안전하게 구문 분석할 수 있습니다.

JSON.parse(correctJson);

이 방법을 사용하면 사용자 지정 파서나 eval과 같은 안전하지 않은 기술 없이도 JSON 구문 분석의 보안과 신뢰성을 유지하면서 따옴표가 없는 키를 사용하여 "완화된" JSON을 구문 분석할 수 있습니다.

위 내용은 `eval`을 사용하지 않고 완화된 JSON을 안전하게 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.