2012-05-18 6 views
7

JSON 약 30,000자를 가져 오는 간단한 스크립트가 있습니다. 내가 JSON.parse() 또는 Utilities.jsonParse();google apps 스크립트 UrlFetchApp.fetch 제한 사항?

function refresh() { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    sheet.clear(); 


    var text = UrlFetchApp.fetch("http://blablah/json"); 

    Logger.log(text.getContentText()); 

    //error SyntaxError: Unexpected token: F (line 12) 
    json = JSON.parse(text); 
) 

로거 만 JSON의 약 59 라인을 보여주고 그것을 구문 분석 할 때

나는 SyntaxError: Unexpected token: F (line 12)를 얻을 수 있지만, 나는 로거는 공간 제한이 들었다 -하지만 난 ' 그게 확실하지 않아.

내 서버에서 실행되는 JSON.parse는 데이터를 올바르게 파싱하므로 jQuery get()도 마찬가지입니다.

그래서 UrlFetchApp.fetch()가 긴 파일을 가져올 수 없다고 생각하십니까? 하드

수락하고 나는 그것을 :(

+1

"Logger.log (text.getContentText(). length);"줄을 추가하십시오. 실제로 가져온 문자 수를 결정합니다. –

+1

왜 모든 데이터가 있다고 가정하지 않습니까? UrlFetch를 사용하여 많은 양의 데이터를 캡처했으며 30K는 괜찮을 것이라고 생각합니다. Utilities.jsonParse() 만 사용하면 오류가 발생합니까? 에릭의 추천도 훌륭합니다. – mzimmerman

+1

@mzimmerman'JSON.parse'가'Utilities.jsonParse'보다 권장됩니다. 지금은 차이점을 기억하지 않지만 Google 포럼에서 검색하면 찾을 수 있습니다. –

답변

4
당신은 새로운 애플리케이션 스크립트에 URL을 가져올 수 및 기타 서비스의 한계를 확인하실 수 있습니다

dashboard. 내 경험에서, Logger.log이 훨씬 더 엄격한있다 에 대해 어떤 문서를 발견했습니다 UrlFetch보다 하나의 로그에 대한 제한이 있다면 UrlFetch가 문제를 일으킬 가능성이 있으며 Logger.log가이를 표시하지 않고 다른 문제가 발생하는 것일 수 있습니다. 또는이를 분할하여 for-loop에서 logger log를 호출하십시오.

할당량 제한 외에 직면 할 수있는 오류가 문자 인코딩 인 경우 getContentText에 페이지의 인코딩을 알릴 수있는 선택적 매개 변수가 있습니다. 확인 했습니까?

+2

좋아, 대답을 찾는데 도움이 되었기 때문에 이것을 답으로 표시하고있다. 예 Logger.log (text.getContentText(). length) spit는 30k 문자를 넣고 행 셀에 넣는 것이 전부였습니다. 그 비밀은 value = text.getContentText(); 다음 JSON.parse (값) – Vigrond

+0

확실히! 어떻게 그걸 놓친거야? :) –

관련 문제