GASでdeeplのapiからJSONを取得し、そのJSONから変換したオブジェクトに入っている"text"を取得してセルに表示する関数を書いているのですが、様々なサイトに書いてある配列の取り出し方ではうまく目的の文字列が取り出せません。
とりあえず思いつくものをLoggerに吐かせたんですが、なぜかnullが入っています。undefinedならともかく、nullが入っているのは解せないんですが、なにか指定の方法がまずいのでしょうか?
GAS
1function deeplapi(originalValue, translateFrom, translateTo) { 2 Logger.log(originalValue.length); 3 if ( originalValue.length > 0 ) { 4 var response = UrlFetchApp.fetch("https://api-free.deepl.com/v2/translate?auth_key=XXXX&text="+ originalValue +"&target_lang="+ translateTo +"&source_lang="+ translateFrom +"");//deepl APIから取得 5 var json=JSON.parse(response.getContentText());//JSONをオブジェクトに 6 Logger.log(response);//responseをlogに記録 7 Logger.log(json);//jsonをlogに記録 8 Logger.log(json["translations"]["detected_source_language"]);//ここがnullになる 9 Logger.log(json["translations.text"]);//ここもnullになる 10 } else { 11 Logger.log("missed");//何も文字列が入っていなければ失敗と返す。 12 return ''; 13 } 14}
Log
12021/05/14 1:58:13 情報 22.0 22021/05/14 1:58:14 情報 {"translations":[{"detected_source_language":"JA","text":"It's been a great day! We can grow overwhelmingly tomorrow."}]} 32021/05/14 1:58:14 情報 {translations=[{detected_source_language=JA, text=It's been a great day! We can grow overwhelmingly tomorrow.}]} 42021/05/14 1:58:14 情報 null 52021/05/14 1:58:14 情報 null
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/14 15:56
2021/05/14 19:40
2021/05/15 04:09