qsを用いた配列の変換

1.qsのinstall

npm i qs

2.version 確認

# npm ls|grep qs
tqq qs@6.11.0

3.code

const qs = require('qs');
let stringifyStr , parseStr;

        const params1 = [
            {
                archive : 0,
                folder : 'draft',
                role : 'seller',
                type : 'invoice'
            }
        ]

stringifyStr = qs.stringify(params1);
console.log(stringifyStr);

parseStr = qs.parse(stringifyStr);
console.log(parseStr);

        const params2 = [
            { type : "invoice", role : "buyer", folder : "sent", archive : 0 },
            { type : "invoice", role : "buyer", folder : "returned", archive : 0 },
            { type : "invoice", role : "buyer", folder : "confirmed", archive : 0 },
            { type : "invoice", role : "buyer", folder : "paid", archive : 0 }
        ];

stringifyStr = qs.stringify(params2);
console.log(stringifyStr);

parseStr = qs.parse(stringifyStr);
console.log(parseStr);

console.log("parseStr[0]="+parseStr[0].type+":"+parseStr[0].role+":"+parseStr[0].folder+":"+parseStr[0].archive);
console.log("parseStr[1]="+parseStr[1].type+":"+parseStr[1].role+":"+parseStr[1].folder+":"+parseStr[1].archive);

4.実行結果
・配列は、以下の形式になる

# node app.js
0%5Barchive%5D=0&0%5Bfolder%5D=draft&0%5Brole%5D=seller&0%5Btype%5D=invoice
{
  '0': { archive: '0', folder: 'draft', role: 'seller', type: 'invoice' }
}
0%5Btype%5D=invoice&0%5Brole%5D=buyer&0%5Bfolder%5D=sent&0%5Barchive%5D=0&1%5Btype%5D=invoice&1%5Brole%5D=buyer&1%5Bfolder%5D=returned&1%5Barchive%5D=0&2%5Btype%5D=invoice&2%5Brole%5D=buyer&2%5Bfolder%5D=confirmed&2%5Barchive%5D=0&3%5Btype%5D=invoice&3%5Brole%5D=buyer&3%5Bfolder%5D=paid&3%5Barchive%5D=0
{
  '0': { type: 'invoice', role: 'buyer', folder: 'sent', archive: '0' },
  '1': { type: 'invoice', role: 'buyer', folder: 'returned', archive: '0' },
  '2': { type: 'invoice', role: 'buyer', folder: 'confirmed', archive: '0' },
  '3': { type: 'invoice', role: 'buyer', folder: 'paid', archive: '0' }
}
parseStr[0]=invoice:buyer:sent:0
parseStr[1]=invoice:buyer:returned:0
#