jQuery 1.4.2 이전 버 전 json 형식 과 호 환 되 는 해결 방법

원래 제 이 슨 파일 의 내용 은{label:'유럽(EU 27)',data:[1999,3.0],[2000,3.9],[2001,2.0],[2002,1.2],[2003,1.3],[2004,2.5],[2005,2.0],[2006,3.1],[2007,2.9],[2008,0.9]}해결 방법 1:표준 제 이 슨 형식 으로 바 꾸 어 문자열 에 대해 모두""제한"을 사용 하도록 요구 하고 수 정 된 내용 은{"label":"유럽(EU 27)","data":[1999,3.0]이다.[2000,3.9],[2001,2.0],[2002,1.2],[2003,1.3],[2004,2.5],[2005,2.0],[2006,3.1],[2007,2.9],[2008,0.9]}이렇게 하면 정상적으로 불 러 올 수 있다.해결 방법 2:jQuery-1.4.2.js 에서"parseJSON:function"을 찾 으 면 다음 과 같은 코드 가 있 습 니 다
 
// Logic borrowed from http://json.org/json2.js
if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
.replace(/"[^"\\
\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")
.replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {
// Try to use the native JSON parser first
return window.JSON && window.JSON.parse ?
window.JSON.parse( data ) :
(new Function("return " + data))();
} else {
jQuery.error( "Invalid JSON: " + data );
}
원래 1.3.2 코드 로 바 꾸 면 됩 니 다.다음은 다른 네티즌 들 의 보충 이다.jquery 1.4.2 버 전 은 성능 이 배로 향상 되 었 지만 골 치 아 픈 일 은 바로$.getJSON 함수 이다.원래 구 버 전의 JSON 데 이 터 를 사용 하 였 는데 표준 에 맞지 않 으 면 이 버 전 을 사용 하면 JSON 데 이 터 를 정상적으로 얻 을 수 없다.예 를 들 어 JSON 의 표준 에 맞지 않 는 쓰기
 
// Get the JavaScript object, if JSON is used.
if ( type === "json" || !type && ct.indexOf("json") >= 0 ) {
data = jQuery.parseJSON( data );
jquery 1.4.x 이하 의 구 버 전 은 정상적으로 얻 을 수 있다.프로그램 을 개발 할 때 이런 형식 을 사용 하면 머리 가 아프다.JQUERY 를 새로운 버 전 으로 업그레이드 하면 읽 을 수 없 는 JSON 표준 쓰기 이기 때문에 각종 버 전 을 정상적으로 얻 을 수 있다.또 어떤 방법 이 낡은 근 거 를 새로운 버 전에 적합 하 게 할 수 있 습 니까?방법 은 있 습 니 다.이전 버 전의 JSON 처리 함 수 를 복원 하면 됩 니 다.수정 방법 은 다음 과 같 습 니 다.jq 1.4.x Regular 버 전 수정 은 jquery-1.4.x.js 파일 을 열 고 다음 코드 를 찾 습 니 다.data=jQuery.parseJSON(data);다음 코드 로 변경:data=window["eval"]("("+data+")");jq 1.4.x Minified 버 전 수정 jquery-1.4.x.min.js 파일 을 열 고 다음 코드 를 찾 습 니 다:a=c.parseJSON(a);다음 코드 로 변경:a=window["eval"]("+a+");당신 의 프로그램 을 시험 해 보 세 요.하하,$.getJSON 은 정상 입 니까?물론 정규 를 쓸 능력 이 있다 면 새 버 전의 parseJSON 함수 에서 JSON 처리 정규 를 수정 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기