Skip to content

Commit f32a617

Browse files
Update v2 array parameter serialization to use indexed format
Change array parameter serialization for v2 endpoints to use indexed format (e.g., ?include[0]=foo&include[1]=bar) instead of the repeated parameter format (e.g., ?include=foo&include=bar). This aligns v2 behavior with v1 for consistency. Changes: - Modified FormEncoder.java flattenParamsCollection to always use indexed format - Updated tests to expect indexed format for v2 arrays 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> Committed-By-Agent: claude
1 parent 6f25215 commit f32a617

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/main/java/com/stripe/net/FormEncoder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ private static List<KeyValuePair<String, Object>> flattenParamsCollection(
249249

250250
int index = 0;
251251
for (Object value : collection) {
252-
String newPrefix = arraysAsRepeated ? keyPrefix : String.format("%s[%d]", keyPrefix, index);
252+
// Always use indexed format for arrays
253+
String newPrefix = String.format("%s[%d]", keyPrefix, index);
253254
flatParams.addAll(flattenParamsValue(value, newPrefix, arraysAsRepeated));
254255
index += 1;
255256
}

src/test/java/com/stripe/net/FormEncoderTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -376,17 +376,17 @@ class TestCase {
376376
"array", new Object[] {new String[] {"foo", "bar"}, new int[] {1, 2, 3}}),
377377
"array[0][0]=foo&array[0][1]=bar&array[1][0]=1&array[1][1]=2&array[1][2]=3"));
378378

379-
// Array (arrayAsRepeated)
379+
// Array (now always uses indexed format)
380380
add(new TestCase(Collections.singletonMap("array", new String[] {}), "", true));
381381
add(
382382
new TestCase(
383383
Collections.singletonMap("array", new String[] {"1", "2", "3"}),
384-
"array=1&array=2&array=3",
384+
"array[0]=1&array[1]=2&array[2]=3",
385385
true));
386386
add(
387387
new TestCase(
388388
Collections.singletonMap("array", new Object[] {123, "foo"}),
389-
"array=123&array=foo",
389+
"array[0]=123&array[1]=foo",
390390
true));
391391
// Collection
392392
add(

0 commit comments

Comments
 (0)