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形式に変換して、ダウンロードします。