2010-04-05 2 views
0

를 반환하지 :Prototypejs .evalJSON은 (<a href="http://jsonlint.com/" rel="nofollow noreferrer">JSONLint</a>에 따라 유효성을 검사하는) 나는이 JSON이 객체

[ 
{ 
    "BugCount":"2", 
    "BugTitle":"C:\\INETPUB\\WWWROOT\\CLUBREADY2\\TRAINERS\\../Connections/LTC.asp", 
    "ErrLine":"141", 
    "BugID":"702" 
}, 
{ 
    "BugCount":"1", 
    "BugTitle":"/admin/ajax_logagreementsig.asp", 
    "ErrLine":"0", 
    "BugID":"1322" 
}, 
] 

을하지만, 나는 몇 가지 문제를 얻을 그것을 data = json.evalJSON을 실행할 때. .evalJSON (true)을 실행하면 (위생적으로) "json"이 정의되지 않았다는 프로토 타입 내에서 오류가 발생합니다. .evalJSON()을 수행하면 마찬가지입니다.

괄호가없는 .evalJSON을 수행하면 데이터는 빈 개체이며 오류는 발생하지 않습니다.

내 JSON에 문제가 있습니까?

답변

0

나는 내 문제를 발견했으며 어리 석음이었다. 실수로 JSON을 반환하는 .aspx 페이지에 기본 HTML을 남겨 두었습니다. 따라서 JSON으로 평가하려고 시도한 문자열 안에 전체 ""빌드 된 웹 페이지가있었습니다.

1

그건 그냥 자바 스크립트 개체이기 때문에 아무 것도 평가하지 않아도됩니다.

var data = [ 
{ 
    "BugCount":"2", 
    "BugTitle":"C:\\INETPUB\\WWWROOT\\CLUBREADY2\\TRAINERS\\../Connections/LTC.asp", 
    "ErrLine":"141", 
    "BugID":"702" 
}, 
{ 
    "BugCount":"1", 
    "BugTitle":"/admin/ajax_logagreementsig.asp", 
    "ErrLine":"0", 
    "BugID":"1322" 
} 
]; 

는 위의 잘 될 것입니다, 당신의 data VAR는 두 항목의 배열에 해결됩니다. 목록에있는 후행 쉼표는 IE에서 Null 값을 갖는 세 번째 항목을 유발하지만 대부분의 다른 브라우저에서는 그렇지 않기 때문에 제거했습니다.

관련 문제