> 웹 프론트엔드 > JS 튜토리얼 > Json 문자열을 JS 객체_javascript 기술로 변환하는 효율적인 방법의 예

Json 문자열을 JS 객체_javascript 기술로 변환하는 효율적인 방법의 예

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-05-16 17:34:54
원래의
852명이 탐색했습니다.

오늘 JQuery 소스 코드를 공부하고 JSON 문자열을 다음과 같이 구문 분석하는 방법을 살펴보았습니다.

코드 복사 코드

parseJSON: function( data ) {
if ( typeof data !== "string" || !data ) {
return null;
}

// 선행/후행 공백이 제거되었는지 확인하세요(IE에서는 처리할 수 없음)
data = jQuery.trim( data );

// 들어오는 데이터가 실제 JSON인지 확인하세요
// http://json.org/json2.js에서 가져온 논리
if ( /^[/],:{}/s]*$/.test(data.replace(///(? :["////bfnrt]|u[0-9a-fA-F]{4})/g, "@")
.replace(/"[^"///n/r]* "|true|false|null|-?/d (?:/./d*)?(?:[eE][ /-]?/d )?/g, "]")
.replace( /(?:^|:|,)(?:/s*/[) /g, "")) ) {

// 먼저 기본 JSON 파서를 사용해 보세요
return window.JSON && window.JSON.parse ?
window.JSON.parse( data ) :
(new Function("return " data ))();

} else {
jQuery.error( "잘못된 JSON: " data );
}
}


이 메서드의 핵심 코드는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

(new Function("return " data))();

Function() 생성자를 사용합니다. 함수 실행 데이터로 json 문자열이 전달되며, 정의 후 바로 함수가 실행됩니다. 이때 이 함수는 JSON 객체를 반환합니다.

테스트를 한 결과 이 ​​방법을 사용하여 JSON 문자열을 구문 분석하는 것이 Eval을 사용하는 것보다 수백 배 빠른 것으로 나타났습니다.

코드 복사 코드는 다음과 같습니다:

var jsonStr ="{";
for(var i=0;i<10000;i ){
jsonStr ="a" i ": " i ","
}
jsonStr = jsonStr.substring(0,jsonStr.length-1);
jsonStr ="}";

var date = new Date();
var start = date.getTime()
//var boj = (new Function("return " jsonStr ))();
var boj = eval ("(" jsonStr ")");
var date1 = new Date();
console.info(date1.getTime()-start);


fifox를 사용하여 테스트 결과적으로 eval을 사용하여 구문 분석하는 데 7234밀리초가 걸린 반면, 함수 메서드를 사용하면 55밀리초가 걸렸습니다. 이는 놀랍습니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
Backslash present in Json
에서 1970-01-01 08:00:00
0
0
0
mysql 스토리지 json 오류
에서 1970-01-01 08:00:00
0
0
0
가져오기: JSON 데이터 전송
에서 1970-01-01 08:00:00
0
0
0
Dapatkan: Pindahkan data JSON
에서 1970-01-01 08:00:00
0
0
0
javascript - json 데이터 표시 문제
에서 1970-01-01 08:00:00
0
0
0
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿