Webサービスからデータを取得していますが、JSON形式です。データを入力するGoogleスプレッドシート用のGoogle Appsスクリプトを書いています。私の問題は、解析できないようです。
実行:
var dataset = myJSONtext;
Browser.msgbox(dataset.item[0].key);
エラーは言って:
item [0]は定義されていません。
これを行う必要がある組み込みの方法はありますか?
Appsスクリプトは(かなり)Javascriptです。 plain-old JSON.parse
は、JSONをオブジェクト表現に解析するための最良のオプションです。
JSON.stringify
を使用して、オブジェクトを文字列表現にシリアル化することもできます。
2011年以降、GoogleサポートフォーラムのHenrique Abreuが 指摘 としてこれを目にしている人のために、Utilities.jsonParseは廃止される予定です。スレッドからわかるように、この関数には、キーが数字、つまり「1234」の場合に機能しないというバグがあります。
提案されているように、JSON.stringify/parseを使用する必要があります。
2013年の更新-ImportJSONライブラリをチェックしてください
http://blog.fastfedora.com/projects/import-json
「ImportJSONは、パブリックJSON APIからGoogleスプレッドシートにデータをインポートします。これは、ネイティブのGoogleスプレッドシート関数であるImportDataおよびImportXMLの動作と同様に動作することを目的としています。」
ここで利用可能なコードと彼はそれをスクリプトギャラリーに提出しました: https://raw.github.com/fastfedora/google-docs/master/scripts/ImportJSON/Code.gs
使用例:Googleスプレッドシートのスクリプトエディターにコードを入力した後、これをシートのセルA1に貼り付けます。
=ImportJSON("http://gdata.youtube.com/feeds/api/standardfeeds/most_popular?v=2&alt=json", "/feed/entry/title,/feed/entry/content", "noInherit,noTruncate,rawHeaders")
この要点を使用: https://Gist.github.com/varun-raj/5350595a730a62ca1954
交換する
http://example.com/feeds?type=json
jSON URL
ここにエンティティを追加します
rows.Push([data.id, data.name,data.email]);