ljharb/qs
View on GitHubParse results in multiple objects with the same key instead of one.
Open
#241 opened on Dec 20, 2017
bughelp wanted
Description
The following stringify/parse sequence works as expected:
dataB = {
"incidents": [
{
"open": [
"damaged",
{
"lost": [
"red",
"green"
]
}
]
}
]
};
queryStringB = QS.stringify(dataB, { arrayFormat: 'brackets' });
parsedB = QS.parse(queryStringB)
The result is {"incidents":[{"open":["damaged",{"lost":["red","green"]}]}]}, which matches dataB.
However, the following sequence does not result how I expect it to:
dataA = {
"incidents": [
"cold",
{
"open": [
"damaged",
{
"lost": [
"red",
"green"
]
}
]
}
]
};
queryStringA = QS.stringify(dataA, { arrayFormat: 'brackets' });
parsedA = QS.parse(queryStringA)
This results in {"incidents":["cold",{"open":["damaged"]},{"open":[{"lost":["red","green"]}]}]}, which does not match dataA. Note that the only difference between dataA and dataB is that dataA has an extra element in the incidents array.
I saw some other parsing issues in the issue listing but none of them look quite like this.