2014-01-20 4 views
0

블로그 게시물 목록을 요청하는 일부 JSON (https://gist.github.com/tekknolagi/8526671)이 있습니다. JSONLint에서 enter image description here구문 분석 JSON은 이상한 오류를 반환합니다.

또한 : enter image description here

내가 잘못 무엇을 알아낼 수 없습니다

나는 콘솔에서 일부 펑키 오류를 얻었다. 내 코드 :

$(document).ready(function() { 
    $.ajax({ 
    url: '/posts.json', 
    type: "GET", 
    dataType: "text", 
    success: function(data) { 
//  data = data.replace(/(\r\n|\n|\r)/gm,""); 
     console.log(data); 
     var parsed = JSON.parse(data); 
     var parsed = data; 
     var names = [] 
     for (var post in parsed) names.push(post.title); 
     console.log(names); 
     $('#page_holder').pagify({ 
     pages: data, 
     default: null 
     }); 
    }, 
    fail: function (err) { 
     console.log(err); 
    } 
    }); 
}); 

그리고 항상 구문 분석에 실패합니다. 이것은 몇 주 동안 나를 죽였다.

+0

@ TravisJ가 도망 간 것 같습니다 ... – Shomz

+0

어떻게 "JSON"을 얻었습니까? 라이브러리를 사용하여 JSON을 빌드해야합니다. –

+0

@dystroy Liquid로 생성하고 있지만, 자신의'json' 또는'jsonify' 필터가 작동하지 않습니다 ... 어떤 이유로 든 – tekknolagi

답변

6
오류 발생 라인 문자열 내부이를 갖는다

:

Type \"help\", \"copyright\", \"credits\" or \"license\" 

\&는 JSON 문자열 값의 유효 이스케이프 시퀀스 아니다 :

http://json.org/string.gif


"입증" :

["\&foo"] 
같은 오류가 나는 \가 처음에 거기에 도착하는 방법을 알고하지 않기 때문에


10 개

결과, 그것은 솔루션을 제공하기 위해 정말 수 없습니다. 하지만 JSON을 유효하게 만들려면 JSON을 생성하기 전에 JSON을 제거해야합니다. 올바른 JSON 라이브러리는 실제로 \을 올바르게 처리해야합니다.

+0

또한 일부 탭 문자가 있습니다. 그 중 일부는 허용되지 않습니다. (* edit * maybe) – Pointy

+0

'\ &'일은 \를 두 배로하여 JSON- 안전하게 만들 수 있습니까? – Pointy

+0

@Pointy : 예, 어떤 탭에 대해 이야기하고 있습니까? 만약''\'앞에있는''을 제거하면 JSON이 유효합니다. –