ljharb/qs

Stringify with `comma` format should add square brackets to parameter name to identity array with single value

Open

#315 opened on 2019年6月4日

GitHub で見る
 (17 comments) (5 reactions) (0 assignees)JavaScript (744 forks)batch import
enhancementhelp wantedstringify

Repository metrics

Stars
 (8,015 stars)
PR merge metrics
 (平均マージ 6d 22h) (30d で 2 merged PRs)

説明

Hi. With new comma array format, stringify of array with single value will produce following result:

const options = {
    arrayFormat: 'comma'
};
qs.stringify({foo: [1]}, options); // foo=1
qs.stringify({foo: [1, 2]}, options); // foo=1,2

So, on parse stage, parsing will produce single value.

qs.parse('foo=1); // {foo: 1}
qs.parse('foo=1,2'); // {foo: [1, 2]}

Maybe add square brackets to parameter name, when comma array format is used?

qs.stringify({foo: [1]}, options); // foo[]=1
qs.stringify({foo: [1, 2]}, options); // foo[]=1,2
qs.parse('foo[]=1); // {foo: [1]}
qs.parse('foo[]=1,2'); // {foo: [1, 2]}

Currently, parsing of the following query string foo[]=1,2 working as expected

コントリビューターガイド