3流SEがChatGPT先生に聞いてみた

教えてChatGPT先生。めんどくさいの、自分で考えるの。

servicenowのClient scriptで以下の関数を作って。 ・引数でjsonを受け取る。 ・jsonをcsv形式に変換して、ダウンロードする

以下のような関数を作成することができます。

function downloadCsvFromJson(jsonData) {
  // JSONをパースして配列に変換する
  const jsonArray = JSON.parse(jsonData);

  // CSVフォーマットに変換する
  const csvArray = jsonArray.map((obj) => {
    return Object.values(obj).join(',');
  });

  // ヘッダー行を追加する
  const headerRow = Object.keys(jsonArray[0]).join(',');
  csvArray.unshift(headerRow);

  // CSV形式の文字列に変換する
  const csvData = csvArray.join('\n');

  // ファイル名を指定して、CSVファイルをダウンロードする
  const filename = 'data.csv';
  const blob = new Blob([csvData], { type: 'text/csv' });
  const link = document.createElement('a');
  link.href = window.URL.createObjectURL(blob);
  link.download = filename;
  link.click();
}

この関数は、引数にJSONデータを受け取ります。JSONデータは文字列である必要があります。JSONをパースして、配列に変換します。配列の各要素をCSV形式の文字列に変換して、配列に格納します。ヘッダー行を追加して、配列の要素を改行区切りのCSV形式の文字列に変換します。最後に、Blobオブジェクトを生成して、ダウンロード用のリンクを作成して、ダウンロードを実行します。

この関数を呼び出すためには、以下のようにします。

const jsonData = '{"name": "John", "age": 30}\n{"name": "Mary", "age": 25}';
downloadCsvFromJson(jsonData);

上記の例では、JSONデータとして{"name": "John", "age": 30}と{"name": "Mary", "age": 25}の2つのオブジェクトを含む文字列を渡しています。この文字列をCSV形式に変換して、ダウンロードします。