원본 json 파일 콘텐츠는 다음과 같습니다.
{
레이블: '유럽(EU27)',
데이터: [[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:
모든 문자열을 ""로 정규화하도록 요구하는 표준 json 형식으로 변경합니다. 수정된 내용은 다음과 같습니다.
{
"label": "유럽(EU27) )",
"데이터": [[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"을 찾으면 다음 코드를 찾을 수 있습니다.
// http://json.org/json2.js에서 빌려온 로직
if ( / ^[ ],:{}s]*$/.test(data.replace(/\(?:["\/bfnrt]|u[0-9a-fA-F]{4})/g, "@ ")
.replace(/"[^"\nr]*"|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 );
}
parseJSON 함수는 httpData에서 사용됩니다: 함수:
// JSON을 사용하는 경우 JavaScript 개체를 가져옵니다.
if ( type === "json" || ! type && ct.indexOf("json") >= 0 ) {
data = jQuery.parseJSON( data )
jQuery에는 ParseJSON 메서드는 없지만 아래 코드를 직접 사용하세요.
// JSON인 경우 JavaScript 개체 가져오기
if ( type == "json" )
data = window["eval"]("(" data ")");
원래 1.3으로 대체합니다. .2 코드 그게 다야.
다음은 다른 네티즌들이 추가한 내용입니다.
jquery1.4.2 버전에서 성능이 2배로 향상됐는데, 한 가지 귀찮은 점은 $.getJSON 함수인데, 원래는 예전 If JSON을 사용했습니다. 버전의 데이터가 표준 방식으로 작성되지 않아 이 버전에서는 JSON 데이터를 정상적으로 얻을 수 없습니다. 예:
JSON을 작성하는 비표준 방식
{Err:1,errmsg:'잘못된 ID 값을 올바른 양식 페이지에서 제출하세요!' }
jquery 1.4.x 이하의 이전 버전은 정상적으로 구할 수 있습니다. 프로그램을 개발할 때 이 형식을 사용하면 머리가 아프게 됩니다. 왜냐하면 JQUERY를 새 버전으로 업그레이드하면 이 형식이 되기 때문입니다. 읽을 수 없습니다
JSON 표준 작성 방법으로 모든 버전을 정상적으로 구할 수 있습니다
{"Err":1,"errmsg":"ID 값이 잘못되었습니다. 올바른 양식 페이지에서 제출해 주세요!"}
이것은 기본 json이 jquery1.4.X 버전 파서에 사용되는 파서에는 json 형식에 대한 엄격한 요구 사항이 있습니다
프로그램의 JSON 데이터를 수정하고 싶지 않은 경우 이전 데이터와 새 데이터를 새 버전?
JSON 처리 기능을 이전 버전으로 복원하는 방법이 있습니다. 수정 방법은 다음과 같습니다.
jq1.4.x 일반 버전 수정
jquery-1.4.x.js 파일을 엽니다. 다음 코드를 찾습니다.
data = jQuery.parseJSON( data );
다음 코드로 수정되었습니다.
data = window["eval"]("(" data ")"); >jq1.4 .x 축소 버전 수정
jquery-1.4.x.min.js 파일을 열고 다음 코드를 찾습니다.
a=c.parseJSON(a)
다음 코드로 변경합니다. :
a= window ["eval"]("(" a ")");
프로그램을 사용해 보세요. 하하, $.getJSON이 정상인가요?
물론, 정규식을 작성할 수 있는 능력이 있다면 새로운 버전의 ParseJSON 함수에서 정규식을 처리하는 JSON을 수정할 수 있습니다.