2014-07-24 2 views
1

저는 Meteor에서 javascript로 작업 중이며 API에 HTTP.get 요청을하고 응답을받습니다. res = {..., content: "access_token=4h378fi243h085giouf245&expires=5180430", data=null}. 보시다시피, res.content은 문자열이지만 실제로는 좋은 JSON 객체 {access_token: 4h378fi243h085giouf245, expires: 5180430}을 나타냅니다.http 응답 내용 문자열을 해석하십시오.

해당 문자열을 해당 객체로 변환하는 유성기 또는 자바 스크립트 패키지/쉬운 솔루션이 있습니까?

는 (나는 일부 수동 문자열 구문 분석 솔루션을 본 적이 있지만 그 해키 것, 그리고이 당신을 위해 제공 할 것을 유성 또는 자바 스크립트처럼 보인다.)

편집 : 이 JSON.parse (res.content를) 수행이 실제로 제가 시도한 첫 번째 것이지만 '예상치 못한 토큰 a'를주었습니다. 'access_token'에서 추측하고 있습니다. 왜 그게 효과가 없을까요?

+0

나는 'JSON.parse (res.content)'를하고, 'access_token'에서 'Unexpected token a'을 주었다. – tscizzle

답변

-2

JSON.parse 당신이하려는 일을해야합니다.

+2

@mailmindlin :이 대답을 더 잘 설명 할 수 있습니까? JSON.parse가 여기서 왜 작동합니까? – Brian

+0

그것은 여기서 작동하지 않습니다. 이것이이 답변이 투표를하는 이유입니다 –

2

실제로 JSON이 아니며 URL 매개 변수 문자열입니다.

var result = {}; 
res.content.split("&").forEach(function(part) { 
    var item = part.split("="); 
    result[item[0]] = decodeURIComponent(item[1]); 
}); 
result = JSON.parse(result); 
1

여기서 모든 대답은 res.content가 JSON이 아니지만 쿼리 문자열이라는 사실을 잊어 버립니다. 약간의 조정을 통해 값을 얻는 방법에 대해서는이 질문을 참조하십시오 : How can I get query string values in JavaScript?.

쿼리 문자열을 개체로 구문 분석하는 Cerealizer이라는 JavaScript 클래스 라이브러리도 만들었습니다. github 검색으로 다른 사람들도 검색 할 수 있다고 확신합니다.

var parser = new Cerealizer.QueryString(); 

res.content = parser.deserialize(res.content);