8

約 30,000 文字の JSON を取得する簡単なスクリプトがあります。

またはSyntaxError: Unexpected token: F (line 12)で解析しようとすると取得しますJSON.parse()Utilities.jsonParse();

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 行しか表示されませんが、ロガーにはスペース制限があると言われましたが、それで十分かどうかはわかりません。

私自身のサーバーで実行すると、JSON.parse はデータを適切に解析し、jQuery get() も同様に解析します。

だから私は UrlFetchApp.fetch() が長いファイルを取得できないと思っていますか?

受け入れるのは難しく、それに関するドキュメントは見つかりませんでした:(

4

1 に答える 1

5

UrlFetch やその他のサービスの制限は、新しい Apps Scriptダッシュボードで確認できます。私の経験から、Logger.log は UrlFetch よりも単一のログに対してはるかに厳しい制限があります。UrlFetch が正常に取得され、Logger.log がそれを表示せず、別の問題が発生している可能性があります。

getContentTextスプレッドシートのセルなど、別の場所に結果を配置してみてください。または、それを分割して for ループで logger log を呼び出します。

(クォータ制限以外に) 直面する可能性のあるエラーは、文字エンコードgetContentTextです。ページのエンコードを通知するオプションのパラメーターがあります。確認しましたか?

于 2012-05-18T03:32:09.377 に答える