Typescriptで2つのcsv形式の文字列をいい感じにjsonに変換したいのだが
https://www.npmjs.com/package/csvtojson
とかを見てもいい感じの例を見つけられなかったので記載します。
例
以下のような2つのcsv形式の文字列があった場合にjsonに変換したい場合
文字列A
hoge,fuga
文字列B
1,2
変換後の文字列
{ hoge: '1', fuga: '2' }
やり方
もちろんやり方はいくつもあると思うのですが以下で実現できました
convert_csv_to_json.ts
const csv = require('csvtojson')
const n = "hoge,fuga"
const s = "1,2"
const csvStr = n + "\n" + s
csv({flatKeys:true})
.fromString(csvStr)
.subscribe((jsonObj:string)=>{
console.log(jsonObj)
});
また関数から呼び出したい場合は以下でできました。
https://stackoverflow.com/questions/50990456/node-js-csvtojson-return-result-outside-of-function
よりcsvtojsonはPromise objectを返すので値の取り出し方もPromise内で行います
convert_csv_to_json.ts
const csv = require('csvtojson')
const n = "hoge,fuga"
const s = "1,2"
const csvStr = n + "\n" + s
function fugafunc(csvStr:String):Promise<String>{
return csv().fromString(csvStr);
}
const result = fugafunc(csvStr)
result.then((data: String) => {console.log(data) })