jquery 1.4에서 $.ajax() 메서드를 사용하여 json 개체를 구문 분석할 때 최근 발생한 문제에 대해 이야기해 보겠습니다.
Json 개체는
[{ name:'판매용 중고 주택',infoCount:0,pageUrl:'/ershoufang'},{name:'구매용 중고 주택',infoCount:0,pageUrl:'/qiugou'}, {name:'중고집 장식', infoCount:0,pageUrl:'/esfzhuangxiu'},{name:'중고 재활용',infoCount:0,pageUrl:'/huishou'},{name:'Second -hand Motorcycle',infoCount:0,pageUrl:'/motor '},{name:'중고차 구입',infoCount:0,pageUrl:'/ershoucheqg'},{name:'중고차 환승' ,infoCount:9,pageUrl:'/ershouche'},{name:'중고차 시장',infoCount:0,pageUrl:'/ershoushichang'}]
안함 이 json 객체의 문제를 발견한 사람이 있는지는 알 수 없습니다. 이러한 작성 방식은 js 스크립트와 jquery 1.4 이전 버전에서는 문제가 되지 않습니다. 1.3 및 이전 버전에서는 jQuery가 javascript의 eval 메소드를 통해 json 객체를 구문 분석하기 때문입니다. 1.4에서 jQuery는 json 구문 분석에 더 엄격한 접근 방식을 사용합니다. 모든 콘텐츠에는 큰따옴표를 사용해야 합니다.
이는 jQuery.parseJSON(json)에서 확인할 수 있습니다. 문서의 parseJSON에 대한 설명은 다음과 같습니다.
JSON 문자열을 받아 구문 분석된 개체를 반환합니다.
잘못된 JSON 문자열을 전달하면 예외가 발생합니다. 예를 들어 다음은 잘못된 JSON 문자열입니다.
{test: 1}(test는 큰따옴표로 묶이지 않습니다.)
{'test': 1}(큰따옴표 대신 작은따옴표가 사용됩니다.)
또한 아무것도 전달하지 않거나 빈 문자열(null 또는 정의되지 않음)을 전달하는 경우 parsJSON은 null을 반환합니다.