JSONをスプレッドシートに書き込む際のundefinedについて

116 views
Skip to first unread message

宮内芳維

unread,
Nov 12, 2022, 8:15:32 AM11/12/22
to Google Apps API Japan
初めて投稿致します。
現在、下記のようなJSONデータをスプレッドシートに書き込みたいと考えています。

{ companies:
   [ { id: 1111111, 
       name: 'あああああ株式会社', 
       name_kana: 'アアアアアカブシキガイシャ',
       display_name: 'あああああ株式会社',
        role: 'admin' 
   } ]
 }

コードとしては下記を記載しています。
 //JSONをオブジェクトに変換
  let data = JSON.parse(response)
  console.log(data);
  let add_values = [];
  add_values.push(["display_name", "id", "role" , "name", "name_kana"])

  Object.values(data).map(d => {
    add_values.push([
      d.id,
      d.name,
      d.name_kana,
      d.display_name,
      d.role
    ])
  })
  console.log(add_values);
  const value_length = add_values.length
  const range = sheet.getRange(7,1,value_length,add_values[0].length)
  sheet.clearContents()
  range.setValues(add_values)

すると、結果として、
[ [ 'display_name', 'id', 'role', 'name', 'name_kana' ], 
 [ undefined, undefined, undefined, undefined, undefined ] ]
という形で、undefinedと表示されてしまいます。
どうすれば、undefinedを回避出来ますでしょうか?
ご教示頂ければ幸いです。
宜しくお願い致します。

Tanaike

unread,
Nov 13, 2022, 9:54:51 PM11/13/22
to Google Apps API Japan
サンプルの`data`とスクリプトを見たところ、下記を修正する必要があると思いました。

Object.values(data).map(d => {

この場合、`Object.values(data)`は2次元配列となるために`undefined`が返されると思われます。そこで、下記のような変更はいかがでしょうか。

data.companies.forEach(d => {

追記: 表示されているスクリプトは、`sheet`が定義されていませんのでご注意ください。
Reply all
Reply to author
Forward
0 new messages